// $ANTLR 3.1.3 Mar 18, 2009 10:09:25 C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g 2009-06-11 15:36:27

    package org.faun.recognizer;
    
    import org.faun.recognizer.statement.*;


import org.antlr.runtime.*;
import org.antlr.runtime.tree.*;import java.util.Stack;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;

/**
 * A part of the Faun project
 *
 * This grammar originates from http://code.google.com/p/phpparser/
 * 
 * BSD licence
 * 
 * Copyright (c) 2009 by Yauhen Yakimovich 
 * Copyright (c) 2009 by Sidharth Kuruvila
 *
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 *  1. Redistributions of source code must retain the above copyright
 *     notice, this list of conditions and the following disclaimer.
 *  2. Redistributions in binary form must reproduce the above copyright
 *     notice, this list of conditions and the following disclaimer in the
 *     documentation and/or other materials provided with the distribution.
 *  3. The name of the author may not be used to endorse or promote products
 *     derived from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY HABELITZ SOFTWARE DEVELOPMENTS ('HSD') ``AS IS'' 
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
 * ARE DISCLAIMED. IN NO EVENT SHALL 'HSD' BE LIABLE FOR ANY DIRECT, INDIRECT, 
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, 
 * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 */
public class PhpRecognizer extends TreeParser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "SemiColon", "Comma", "OpenBrace", "CloseBrace", "OpenSquareBrace", "CloseSquareBrace", "OpenCurlyBrace", "CloseCurlyBrace", "ArrayAssign", "LogicalOr", "LogicalAnd", "ClassMember", "InstanceMember", "SuppressWarnings", "QuestionMark", "Dollar", "Colon", "Dot", "Ampersand", "Pipe", "Bang", "Plus", "Minus", "Asterisk", "Percent", "Forwardslash", "Tilde", "Equals", "New", "Clone", "Echo", "If", "Else", "ElseIf", "For", "Foreach", "While", "Do", "Switch", "Case", "Default", "Function", "Break", "Continue", "Return", "Global", "Static", "And", "Or", "Xor", "Instanceof", "Class", "Interface", "Extends", "Implements", "Abstract", "Var", "Const", "Modifiers", "ClassDefinition", "Block", "Params", "Apply", "Member", "Reference", "Empty", "Prefix", "Postfix", "IfExpression", "Label", "Cast", "ForInit", "ForCondition", "ForUpdate", "Field", "Method", "BodyString", "UnquotedString", "AccessModifier", "Integer", "RequireOperator", "AsignmentOperator", "EqualityOperator", "ComparisionOperator", "ShiftOperator", "PrimitiveType", "IncrementOperator", "Array", "SingleQuotedString", "DoubleQuotedString", "HereDoc", "Real", "Boolean", "FirstBodyString", "MultilineComment", "SinglelineComment", "UnixComment", "Decimal", "Hexadecimal", "Octal", "Digits", "DNum", "Exponent_DNum", "EscapeCharector", "HereDocContents", "Eol", "WhiteSpace", "'as'"
    };
    public static final int Switch=42;
    public static final int OpenBrace=6;
    public static final int Method=79;
    public static final int Pipe=23;
    public static final int ForCondition=76;
    public static final int Array=91;
    public static final int Static=50;
    public static final int Forwardslash=29;
    public static final int Empty=69;
    public static final int Decimal=101;
    public static final int Extends=57;
    public static final int EOF=-1;
    public static final int Percent=28;
    public static final int ClassMember=15;
    public static final int Xor=53;
    public static final int Global=49;
    public static final int Default=44;
    public static final int DoubleQuotedString=93;
    public static final int CloseCurlyBrace=11;
    public static final int Digits=104;
    public static final int Do=41;
    public static final int WhiteSpace=110;
    public static final int Echo=34;
    public static final int UnixComment=100;
    public static final int Class=55;
    public static final int Dollar=19;
    public static final int Tilde=30;
    public static final int OpenSquareBrace=8;
    public static final int SemiColon=4;
    public static final int Member=67;
    public static final int InstanceMember=16;
    public static final int Hexadecimal=102;
    public static final int LogicalOr=13;
    public static final int LogicalAnd=14;
    public static final int PrimitiveType=89;
    public static final int Colon=20;
    public static final int Const=61;
    public static final int HereDoc=94;
    public static final int Foreach=39;
    public static final int Apply=66;
    public static final int Block=64;
    public static final int Minus=26;
    public static final int ForUpdate=77;
    public static final int Break=46;
    public static final int EscapeCharector=107;
    public static final int Function=45;
    public static final int OpenCurlyBrace=10;
    public static final int BodyString=80;
    public static final int DNum=105;
    public static final int FirstBodyString=97;
    public static final int CloseSquareBrace=9;
    public static final int Params=65;
    public static final int Else=36;
    public static final int Equals=31;
    public static final int Label=73;
    public static final int Var=60;
    public static final int Abstract=59;
    public static final int SingleQuotedString=92;
    public static final int CloseBrace=7;
    public static final int Modifiers=62;
    public static final int IfExpression=72;
    public static final int SinglelineComment=99;
    public static final int While=40;
    public static final int Cast=74;
    public static final int Case=43;
    public static final int ComparisionOperator=87;
    public static final int Exponent_DNum=106;
    public static final int IncrementOperator=90;
    public static final int ClassDefinition=63;
    public static final int Prefix=70;
    public static final int Implements=58;
    public static final int T__111=111;
    public static final int Interface=56;
    public static final int Real=95;
    public static final int Or=52;
    public static final int UnquotedString=81;
    public static final int Return=48;
    public static final int Clone=33;
    public static final int Reference=68;
    public static final int AsignmentOperator=85;
    public static final int If=35;
    public static final int Postfix=71;
    public static final int And=51;
    public static final int Asterisk=27;
    public static final int Field=78;
    public static final int Continue=47;
    public static final int ShiftOperator=88;
    public static final int AccessModifier=82;
    public static final int ElseIf=37;
    public static final int ForInit=75;
    public static final int For=38;
    public static final int Eol=109;
    public static final int RequireOperator=84;
    public static final int Ampersand=22;
    public static final int Plus=25;
    public static final int Bang=24;
    public static final int SuppressWarnings=17;
    public static final int New=32;
    public static final int Boolean=96;
    public static final int Octal=103;
    public static final int Instanceof=54;
    public static final int HereDocContents=108;
    public static final int Dot=21;
    public static final int QuestionMark=18;
    public static final int ArrayAssign=12;
    public static final int EqualityOperator=86;
    public static final int MultilineComment=98;
    public static final int Comma=5;
    public static final int Integer=83;

    // delegates
    // delegators


        public PhpRecognizer(TreeNodeStream input) {
            this(input, new RecognizerSharedState());
        }
        public PhpRecognizer(TreeNodeStream input, RecognizerSharedState state) {
            super(input, state);
             
        }
        
    protected TreeAdaptor adaptor = new CommonTreeAdaptor();

    public void setTreeAdaptor(TreeAdaptor adaptor) {
        this.adaptor = adaptor;
    }
    public TreeAdaptor getTreeAdaptor() {
        return adaptor;
    }

    public String[] getTokenNames() { return PhpRecognizer.tokenNames; }
    public String getGrammarFileName() { return "C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g"; }


    public static class source_return extends TreeRuleReturnScope {
        public PhpSource value;
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "source"
    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:51:1: source returns [PhpSource value] : ( statement )* ;
    public final PhpRecognizer.source_return source() throws RecognitionException {
        PhpRecognizer.source_return retval = new PhpRecognizer.source_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        PhpRecognizer.statement_return statement1 = null;



        try {
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:52:5: ( ( statement )* )
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:52:7: ( statement )*
            {
            root_0 = (CommonTree)adaptor.nil();

            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:52:7: ( statement )*
            loop1:
            do {
                int alt1=2;
                int LA1_0 = input.LA(1);

                if ( (LA1_0==OpenSquareBrace||(LA1_0>=LogicalOr && LA1_0<=SuppressWarnings)||LA1_0==Dollar||(LA1_0>=Dot && LA1_0<=If)||(LA1_0>=For && LA1_0<=Switch)||(LA1_0>=Function && LA1_0<=Interface)||LA1_0==Block||LA1_0==Apply||(LA1_0>=Prefix && LA1_0<=IfExpression)||LA1_0==Cast||(LA1_0>=BodyString && LA1_0<=UnquotedString)||(LA1_0>=Integer && LA1_0<=EqualityOperator)||LA1_0==ShiftOperator||(LA1_0>=Array && LA1_0<=Boolean)) ) {
                    alt1=1;
                }


                switch (alt1) {
            	case 1 :
            	    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:0:0: statement
            	    {
            	    _last = (CommonTree)input.LT(1);
            	    pushFollow(FOLLOW_statement_in_source52);
            	    statement1=statement();

            	    state._fsp--;
            	    if (state.failed) return retval;
            	    if ( state.backtracking==0 ) 
            	    adaptor.addChild(root_0, statement1.getTree());

            	    if ( state.backtracking==0 ) {
            	    }
            	    }
            	    break;

            	default :
            	    break loop1;
                }
            } while (true);


            if ( state.backtracking==0 ) {
            }
            }

            if ( state.backtracking==0 ) {

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "source"

    public static class statement_return extends TreeRuleReturnScope {
        public PhpStatement value;
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "statement"
    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:54:1: statement returns [PhpStatement value] : ( BodyString | ^( Block (smts+= statement )* ) | classDefinition | interfaceDefinition | complexStatement | simpleStatement );
    public final PhpRecognizer.statement_return statement() throws RecognitionException {
        PhpRecognizer.statement_return retval = new PhpRecognizer.statement_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree BodyString2=null;
        CommonTree Block3=null;
        List list_smts=null;
        PhpRecognizer.classDefinition_return classDefinition4 = null;

        PhpRecognizer.interfaceDefinition_return interfaceDefinition5 = null;

        PhpRecognizer.complexStatement_return complexStatement6 = null;

        PhpRecognizer.simpleStatement_return simpleStatement7 = null;

        PhpRecognizer.statement_return smts = null;
         smts = null;
        CommonTree BodyString2_tree=null;
        CommonTree Block3_tree=null;

        try {
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:55:5: ( BodyString | ^( Block (smts+= statement )* ) | classDefinition | interfaceDefinition | complexStatement | simpleStatement )
            int alt3=6;
            switch ( input.LA(1) ) {
            case BodyString:
                {
                alt3=1;
                }
                break;
            case Block:
                {
                alt3=2;
                }
                break;
            case Class:
                {
                alt3=3;
                }
                break;
            case Interface:
                {
                alt3=4;
                }
                break;
            case If:
            case For:
            case Foreach:
            case While:
            case Do:
            case Switch:
            case Function:
                {
                alt3=5;
                }
                break;
            case OpenSquareBrace:
            case LogicalOr:
            case LogicalAnd:
            case ClassMember:
            case InstanceMember:
            case SuppressWarnings:
            case Dollar:
            case Dot:
            case Ampersand:
            case Pipe:
            case Bang:
            case Plus:
            case Minus:
            case Asterisk:
            case Percent:
            case Forwardslash:
            case Tilde:
            case Equals:
            case New:
            case Clone:
            case Echo:
            case Break:
            case Continue:
            case Return:
            case Global:
            case Static:
            case And:
            case Or:
            case Xor:
            case Instanceof:
            case Apply:
            case Prefix:
            case Postfix:
            case IfExpression:
            case Cast:
            case UnquotedString:
            case Integer:
            case RequireOperator:
            case AsignmentOperator:
            case EqualityOperator:
            case ShiftOperator:
            case Array:
            case SingleQuotedString:
            case DoubleQuotedString:
            case HereDoc:
            case Real:
            case Boolean:
                {
                alt3=6;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return retval;}
                NoViableAltException nvae =
                    new NoViableAltException("", 3, 0, input);

                throw nvae;
            }

            switch (alt3) {
                case 1 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:55:7: BodyString
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    BodyString2=(CommonTree)match(input,BodyString,FOLLOW_BodyString_in_statement68); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    BodyString2_tree = (CommonTree)adaptor.dupNode(BodyString2);

                    adaptor.addChild(root_0, BodyString2_tree);
                    }

                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 2 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:56:7: ^( Block (smts+= statement )* )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Block3=(CommonTree)match(input,Block,FOLLOW_Block_in_statement77); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Block3_tree = (CommonTree)adaptor.dupNode(Block3);

                    root_1 = (CommonTree)adaptor.becomeRoot(Block3_tree, root_1);
                    }


                    if ( input.LA(1)==Token.DOWN ) {
                        match(input, Token.DOWN, null); if (state.failed) return retval;
                        // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:56:15: (smts+= statement )*
                        loop2:
                        do {
                            int alt2=2;
                            int LA2_0 = input.LA(1);

                            if ( (LA2_0==OpenSquareBrace||(LA2_0>=LogicalOr && LA2_0<=SuppressWarnings)||LA2_0==Dollar||(LA2_0>=Dot && LA2_0<=If)||(LA2_0>=For && LA2_0<=Switch)||(LA2_0>=Function && LA2_0<=Interface)||LA2_0==Block||LA2_0==Apply||(LA2_0>=Prefix && LA2_0<=IfExpression)||LA2_0==Cast||(LA2_0>=BodyString && LA2_0<=UnquotedString)||(LA2_0>=Integer && LA2_0<=EqualityOperator)||LA2_0==ShiftOperator||(LA2_0>=Array && LA2_0<=Boolean)) ) {
                                alt2=1;
                            }


                            switch (alt2) {
                        	case 1 :
                        	    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:56:16: smts+= statement
                        	    {
                        	    _last = (CommonTree)input.LT(1);
                        	    pushFollow(FOLLOW_statement_in_statement82);
                        	    smts=statement();

                        	    state._fsp--;
                        	    if (state.failed) return retval;
                        	    if ( state.backtracking==0 ) 
                        	    adaptor.addChild(root_1, smts.getTree());
                        	    if (list_smts==null) list_smts=new ArrayList();
                        	    list_smts.add(smts.getTree());


                        	    if ( state.backtracking==0 ) {
                        	    }
                        	    }
                        	    break;

                        	default :
                        	    break loop2;
                            }
                        } while (true);


                        match(input, Token.UP, null); if (state.failed) return retval;
                    }adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }

                    if ( state.backtracking==0 ) {
                       retval.value = (PhpStatement) new BlockStatement(list_smts);
                    }

                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 3 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:58:7: classDefinition
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_classDefinition_in_statement100);
                    classDefinition4=classDefinition();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_0, classDefinition4.getTree());
                    if ( state.backtracking==0 ) {
                      retval.value = (classDefinition4!=null?classDefinition4.value:null);
                    }

                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 4 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:59:7: interfaceDefinition
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_interfaceDefinition_in_statement114);
                    interfaceDefinition5=interfaceDefinition();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_0, interfaceDefinition5.getTree());
                    if ( state.backtracking==0 ) {
                      retval.value = (interfaceDefinition5!=null?interfaceDefinition5.value:null);
                    }

                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 5 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:60:7: complexStatement
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_complexStatement_in_statement124);
                    complexStatement6=complexStatement();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_0, complexStatement6.getTree());
                    if ( state.backtracking==0 ) {
                      retval.value = (complexStatement6!=null?complexStatement6.value:null);
                    }

                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 6 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:61:7: simpleStatement
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_simpleStatement_in_statement137);
                    simpleStatement7=simpleStatement();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_0, simpleStatement7.getTree());
                    if ( state.backtracking==0 ) {
                      retval.value = (simpleStatement7!=null?simpleStatement7.value:null);
                    }

                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;

            }
            if ( state.backtracking==0 ) {

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "statement"

    public static class interfaceDefinition_return extends TreeRuleReturnScope {
        public PhpStatement value;
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "interfaceDefinition"
    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:64:1: interfaceDefinition returns [PhpStatement value] : ^( Interface UnquotedString ( interfaceExtends )? ( interfaceMember )* ) ;
    public final PhpRecognizer.interfaceDefinition_return interfaceDefinition() throws RecognitionException {
        PhpRecognizer.interfaceDefinition_return retval = new PhpRecognizer.interfaceDefinition_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree Interface8=null;
        CommonTree UnquotedString9=null;
        PhpRecognizer.interfaceExtends_return interfaceExtends10 = null;

        PhpRecognizer.interfaceMember_return interfaceMember11 = null;


        CommonTree Interface8_tree=null;
        CommonTree UnquotedString9_tree=null;

        try {
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:65:5: ( ^( Interface UnquotedString ( interfaceExtends )? ( interfaceMember )* ) )
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:65:7: ^( Interface UnquotedString ( interfaceExtends )? ( interfaceMember )* )
            {
            root_0 = (CommonTree)adaptor.nil();

            _last = (CommonTree)input.LT(1);
            {
            CommonTree _save_last_1 = _last;
            CommonTree _first_1 = null;
            CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
            Interface8=(CommonTree)match(input,Interface,FOLLOW_Interface_in_interfaceDefinition164); if (state.failed) return retval;
            if ( state.backtracking==0 ) {
            Interface8_tree = (CommonTree)adaptor.dupNode(Interface8);

            root_1 = (CommonTree)adaptor.becomeRoot(Interface8_tree, root_1);
            }


            match(input, Token.DOWN, null); if (state.failed) return retval;
            _last = (CommonTree)input.LT(1);
            UnquotedString9=(CommonTree)match(input,UnquotedString,FOLLOW_UnquotedString_in_interfaceDefinition166); if (state.failed) return retval;
            if ( state.backtracking==0 ) {
            UnquotedString9_tree = (CommonTree)adaptor.dupNode(UnquotedString9);

            adaptor.addChild(root_1, UnquotedString9_tree);
            }
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:65:34: ( interfaceExtends )?
            int alt4=2;
            int LA4_0 = input.LA(1);

            if ( (LA4_0==Extends) ) {
                alt4=1;
            }
            switch (alt4) {
                case 1 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:0:0: interfaceExtends
                    {
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_interfaceExtends_in_interfaceDefinition168);
                    interfaceExtends10=interfaceExtends();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, interfaceExtends10.getTree());

                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;

            }

            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:65:52: ( interfaceMember )*
            loop5:
            do {
                int alt5=2;
                int LA5_0 = input.LA(1);

                if ( (LA5_0==Const||LA5_0==Method) ) {
                    alt5=1;
                }


                switch (alt5) {
            	case 1 :
            	    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:0:0: interfaceMember
            	    {
            	    _last = (CommonTree)input.LT(1);
            	    pushFollow(FOLLOW_interfaceMember_in_interfaceDefinition171);
            	    interfaceMember11=interfaceMember();

            	    state._fsp--;
            	    if (state.failed) return retval;
            	    if ( state.backtracking==0 ) 
            	    adaptor.addChild(root_1, interfaceMember11.getTree());

            	    if ( state.backtracking==0 ) {
            	    }
            	    }
            	    break;

            	default :
            	    break loop5;
                }
            } while (true);


            match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
            }


            if ( state.backtracking==0 ) {
            }
            }

            if ( state.backtracking==0 ) {

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "interfaceDefinition"

    public static class interfaceExtends_return extends TreeRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "interfaceExtends"
    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:68:1: interfaceExtends : Extends ( UnquotedString )+ ;
    public final PhpRecognizer.interfaceExtends_return interfaceExtends() throws RecognitionException {
        PhpRecognizer.interfaceExtends_return retval = new PhpRecognizer.interfaceExtends_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree Extends12=null;
        CommonTree UnquotedString13=null;

        CommonTree Extends12_tree=null;
        CommonTree UnquotedString13_tree=null;

        try {
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:69:5: ( Extends ( UnquotedString )+ )
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:69:7: Extends ( UnquotedString )+
            {
            root_0 = (CommonTree)adaptor.nil();

            _last = (CommonTree)input.LT(1);
            Extends12=(CommonTree)match(input,Extends,FOLLOW_Extends_in_interfaceExtends190); if (state.failed) return retval;
            if ( state.backtracking==0 ) {
            Extends12_tree = (CommonTree)adaptor.dupNode(Extends12);

            root_0 = (CommonTree)adaptor.becomeRoot(Extends12_tree, root_0);
            }
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:69:16: ( UnquotedString )+
            int cnt6=0;
            loop6:
            do {
                int alt6=2;
                int LA6_0 = input.LA(1);

                if ( (LA6_0==UnquotedString) ) {
                    alt6=1;
                }


                switch (alt6) {
            	case 1 :
            	    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:0:0: UnquotedString
            	    {
            	    _last = (CommonTree)input.LT(1);
            	    UnquotedString13=(CommonTree)match(input,UnquotedString,FOLLOW_UnquotedString_in_interfaceExtends193); if (state.failed) return retval;
            	    if ( state.backtracking==0 ) {
            	    UnquotedString13_tree = (CommonTree)adaptor.dupNode(UnquotedString13);

            	    adaptor.addChild(root_0, UnquotedString13_tree);
            	    }

            	    if ( state.backtracking==0 ) {
            	    }
            	    }
            	    break;

            	default :
            	    if ( cnt6 >= 1 ) break loop6;
            	    if (state.backtracking>0) {state.failed=true; return retval;}
                        EarlyExitException eee =
                            new EarlyExitException(6, input);
                        throw eee;
                }
                cnt6++;
            } while (true);


            if ( state.backtracking==0 ) {
            }
            }

            if ( state.backtracking==0 ) {

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "interfaceExtends"

    public static class interfaceMember_return extends TreeRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "interfaceMember"
    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:71:1: interfaceMember : ( ^( Const UnquotedString ( atom )? ) | ^( Method ^( Modifiers ( fieldModifier )* ) UnquotedString ^( Params ( paramDef )* ) ) );
    public final PhpRecognizer.interfaceMember_return interfaceMember() throws RecognitionException {
        PhpRecognizer.interfaceMember_return retval = new PhpRecognizer.interfaceMember_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree Const14=null;
        CommonTree UnquotedString15=null;
        CommonTree Method17=null;
        CommonTree Modifiers18=null;
        CommonTree UnquotedString20=null;
        CommonTree Params21=null;
        PhpRecognizer.atom_return atom16 = null;

        PhpRecognizer.fieldModifier_return fieldModifier19 = null;

        PhpRecognizer.paramDef_return paramDef22 = null;


        CommonTree Const14_tree=null;
        CommonTree UnquotedString15_tree=null;
        CommonTree Method17_tree=null;
        CommonTree Modifiers18_tree=null;
        CommonTree UnquotedString20_tree=null;
        CommonTree Params21_tree=null;

        try {
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:72:5: ( ^( Const UnquotedString ( atom )? ) | ^( Method ^( Modifiers ( fieldModifier )* ) UnquotedString ^( Params ( paramDef )* ) ) )
            int alt10=2;
            int LA10_0 = input.LA(1);

            if ( (LA10_0==Const) ) {
                alt10=1;
            }
            else if ( (LA10_0==Method) ) {
                alt10=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return retval;}
                NoViableAltException nvae =
                    new NoViableAltException("", 10, 0, input);

                throw nvae;
            }
            switch (alt10) {
                case 1 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:72:7: ^( Const UnquotedString ( atom )? )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Const14=(CommonTree)match(input,Const,FOLLOW_Const_in_interfaceMember211); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Const14_tree = (CommonTree)adaptor.dupNode(Const14);

                    root_1 = (CommonTree)adaptor.becomeRoot(Const14_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    UnquotedString15=(CommonTree)match(input,UnquotedString,FOLLOW_UnquotedString_in_interfaceMember213); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    UnquotedString15_tree = (CommonTree)adaptor.dupNode(UnquotedString15);

                    adaptor.addChild(root_1, UnquotedString15_tree);
                    }
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:72:30: ( atom )?
                    int alt7=2;
                    int LA7_0 = input.LA(1);

                    if ( (LA7_0==Integer||(LA7_0>=Array && LA7_0<=Boolean)) ) {
                        alt7=1;
                    }
                    switch (alt7) {
                        case 1 :
                            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:0:0: atom
                            {
                            _last = (CommonTree)input.LT(1);
                            pushFollow(FOLLOW_atom_in_interfaceMember215);
                            atom16=atom();

                            state._fsp--;
                            if (state.failed) return retval;
                            if ( state.backtracking==0 ) 
                            adaptor.addChild(root_1, atom16.getTree());

                            if ( state.backtracking==0 ) {
                            }
                            }
                            break;

                    }


                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 2 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:73:7: ^( Method ^( Modifiers ( fieldModifier )* ) UnquotedString ^( Params ( paramDef )* ) )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Method17=(CommonTree)match(input,Method,FOLLOW_Method_in_interfaceMember226); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Method17_tree = (CommonTree)adaptor.dupNode(Method17);

                    root_1 = (CommonTree)adaptor.becomeRoot(Method17_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_2 = _last;
                    CommonTree _first_2 = null;
                    CommonTree root_2 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Modifiers18=(CommonTree)match(input,Modifiers,FOLLOW_Modifiers_in_interfaceMember229); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Modifiers18_tree = (CommonTree)adaptor.dupNode(Modifiers18);

                    root_2 = (CommonTree)adaptor.becomeRoot(Modifiers18_tree, root_2);
                    }


                    if ( input.LA(1)==Token.DOWN ) {
                        match(input, Token.DOWN, null); if (state.failed) return retval;
                        // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:73:28: ( fieldModifier )*
                        loop8:
                        do {
                            int alt8=2;
                            int LA8_0 = input.LA(1);

                            if ( (LA8_0==Static||LA8_0==Abstract||LA8_0==AccessModifier) ) {
                                alt8=1;
                            }


                            switch (alt8) {
                        	case 1 :
                        	    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:0:0: fieldModifier
                        	    {
                        	    _last = (CommonTree)input.LT(1);
                        	    pushFollow(FOLLOW_fieldModifier_in_interfaceMember231);
                        	    fieldModifier19=fieldModifier();

                        	    state._fsp--;
                        	    if (state.failed) return retval;
                        	    if ( state.backtracking==0 ) 
                        	    adaptor.addChild(root_2, fieldModifier19.getTree());

                        	    if ( state.backtracking==0 ) {
                        	    }
                        	    }
                        	    break;

                        	default :
                        	    break loop8;
                            }
                        } while (true);


                        match(input, Token.UP, null); if (state.failed) return retval;
                    }adaptor.addChild(root_1, root_2);_last = _save_last_2;
                    }

                    _last = (CommonTree)input.LT(1);
                    UnquotedString20=(CommonTree)match(input,UnquotedString,FOLLOW_UnquotedString_in_interfaceMember235); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    UnquotedString20_tree = (CommonTree)adaptor.dupNode(UnquotedString20);

                    adaptor.addChild(root_1, UnquotedString20_tree);
                    }
                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_2 = _last;
                    CommonTree _first_2 = null;
                    CommonTree root_2 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Params21=(CommonTree)match(input,Params,FOLLOW_Params_in_interfaceMember238); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Params21_tree = (CommonTree)adaptor.dupNode(Params21);

                    root_2 = (CommonTree)adaptor.becomeRoot(Params21_tree, root_2);
                    }


                    if ( input.LA(1)==Token.DOWN ) {
                        match(input, Token.DOWN, null); if (state.failed) return retval;
                        // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:73:68: ( paramDef )*
                        loop9:
                        do {
                            int alt9=2;
                            int LA9_0 = input.LA(1);

                            if ( (LA9_0==Dollar||LA9_0==Ampersand||LA9_0==Equals) ) {
                                alt9=1;
                            }


                            switch (alt9) {
                        	case 1 :
                        	    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:0:0: paramDef
                        	    {
                        	    _last = (CommonTree)input.LT(1);
                        	    pushFollow(FOLLOW_paramDef_in_interfaceMember240);
                        	    paramDef22=paramDef();

                        	    state._fsp--;
                        	    if (state.failed) return retval;
                        	    if ( state.backtracking==0 ) 
                        	    adaptor.addChild(root_2, paramDef22.getTree());

                        	    if ( state.backtracking==0 ) {
                        	    }
                        	    }
                        	    break;

                        	default :
                        	    break loop9;
                            }
                        } while (true);


                        match(input, Token.UP, null); if (state.failed) return retval;
                    }adaptor.addChild(root_1, root_2);_last = _save_last_2;
                    }


                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;

            }
            if ( state.backtracking==0 ) {

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "interfaceMember"

    public static class classDefinition_return extends TreeRuleReturnScope {
        public PhpStatement value;
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "classDefinition"
    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:76:1: classDefinition returns [PhpStatement value] : ^( Class ^( Modifiers ( classModifier )? ) UnquotedString ( ^( Extends UnquotedString ) )? ( classImplements )? ( classMember )* ) ;
    public final PhpRecognizer.classDefinition_return classDefinition() throws RecognitionException {
        PhpRecognizer.classDefinition_return retval = new PhpRecognizer.classDefinition_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree Class23=null;
        CommonTree Modifiers24=null;
        CommonTree UnquotedString26=null;
        CommonTree Extends27=null;
        CommonTree UnquotedString28=null;
        PhpRecognizer.classModifier_return classModifier25 = null;

        PhpRecognizer.classImplements_return classImplements29 = null;

        PhpRecognizer.classMember_return classMember30 = null;


        CommonTree Class23_tree=null;
        CommonTree Modifiers24_tree=null;
        CommonTree UnquotedString26_tree=null;
        CommonTree Extends27_tree=null;
        CommonTree UnquotedString28_tree=null;

        try {
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:77:5: ( ^( Class ^( Modifiers ( classModifier )? ) UnquotedString ( ^( Extends UnquotedString ) )? ( classImplements )? ( classMember )* ) )
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:77:9: ^( Class ^( Modifiers ( classModifier )? ) UnquotedString ( ^( Extends UnquotedString ) )? ( classImplements )? ( classMember )* )
            {
            root_0 = (CommonTree)adaptor.nil();

            _last = (CommonTree)input.LT(1);
            {
            CommonTree _save_last_1 = _last;
            CommonTree _first_1 = null;
            CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
            Class23=(CommonTree)match(input,Class,FOLLOW_Class_in_classDefinition266); if (state.failed) return retval;
            if ( state.backtracking==0 ) {
            Class23_tree = (CommonTree)adaptor.dupNode(Class23);

            root_1 = (CommonTree)adaptor.becomeRoot(Class23_tree, root_1);
            }


            match(input, Token.DOWN, null); if (state.failed) return retval;
            _last = (CommonTree)input.LT(1);
            {
            CommonTree _save_last_2 = _last;
            CommonTree _first_2 = null;
            CommonTree root_2 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
            Modifiers24=(CommonTree)match(input,Modifiers,FOLLOW_Modifiers_in_classDefinition269); if (state.failed) return retval;
            if ( state.backtracking==0 ) {
            Modifiers24_tree = (CommonTree)adaptor.dupNode(Modifiers24);

            root_2 = (CommonTree)adaptor.becomeRoot(Modifiers24_tree, root_2);
            }


            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); if (state.failed) return retval;
                // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:77:29: ( classModifier )?
                int alt11=2;
                int LA11_0 = input.LA(1);

                if ( (LA11_0==Abstract) ) {
                    alt11=1;
                }
                switch (alt11) {
                    case 1 :
                        // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:0:0: classModifier
                        {
                        _last = (CommonTree)input.LT(1);
                        pushFollow(FOLLOW_classModifier_in_classDefinition271);
                        classModifier25=classModifier();

                        state._fsp--;
                        if (state.failed) return retval;
                        if ( state.backtracking==0 ) 
                        adaptor.addChild(root_2, classModifier25.getTree());

                        if ( state.backtracking==0 ) {
                        }
                        }
                        break;

                }


                match(input, Token.UP, null); if (state.failed) return retval;
            }adaptor.addChild(root_1, root_2);_last = _save_last_2;
            }

            _last = (CommonTree)input.LT(1);
            UnquotedString26=(CommonTree)match(input,UnquotedString,FOLLOW_UnquotedString_in_classDefinition275); if (state.failed) return retval;
            if ( state.backtracking==0 ) {
            UnquotedString26_tree = (CommonTree)adaptor.dupNode(UnquotedString26);

            adaptor.addChild(root_1, UnquotedString26_tree);
            }
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:77:60: ( ^( Extends UnquotedString ) )?
            int alt12=2;
            int LA12_0 = input.LA(1);

            if ( (LA12_0==Extends) ) {
                alt12=1;
            }
            switch (alt12) {
                case 1 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:77:61: ^( Extends UnquotedString )
                    {
                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_2 = _last;
                    CommonTree _first_2 = null;
                    CommonTree root_2 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Extends27=(CommonTree)match(input,Extends,FOLLOW_Extends_in_classDefinition279); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Extends27_tree = (CommonTree)adaptor.dupNode(Extends27);

                    root_2 = (CommonTree)adaptor.becomeRoot(Extends27_tree, root_2);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    UnquotedString28=(CommonTree)match(input,UnquotedString,FOLLOW_UnquotedString_in_classDefinition281); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    UnquotedString28_tree = (CommonTree)adaptor.dupNode(UnquotedString28);

                    adaptor.addChild(root_2, UnquotedString28_tree);
                    }

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_1, root_2);_last = _save_last_2;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;

            }

            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:77:89: ( classImplements )?
            int alt13=2;
            int LA13_0 = input.LA(1);

            if ( (LA13_0==Implements) ) {
                alt13=1;
            }
            switch (alt13) {
                case 1 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:0:0: classImplements
                    {
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_classImplements_in_classDefinition286);
                    classImplements29=classImplements();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, classImplements29.getTree());

                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;

            }

            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:77:106: ( classMember )*
            loop14:
            do {
                int alt14=2;
                int LA14_0 = input.LA(1);

                if ( ((LA14_0>=Var && LA14_0<=Const)||(LA14_0>=Field && LA14_0<=Method)) ) {
                    alt14=1;
                }


                switch (alt14) {
            	case 1 :
            	    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:0:0: classMember
            	    {
            	    _last = (CommonTree)input.LT(1);
            	    pushFollow(FOLLOW_classMember_in_classDefinition289);
            	    classMember30=classMember();

            	    state._fsp--;
            	    if (state.failed) return retval;
            	    if ( state.backtracking==0 ) 
            	    adaptor.addChild(root_1, classMember30.getTree());

            	    if ( state.backtracking==0 ) {
            	    }
            	    }
            	    break;

            	default :
            	    break loop14;
                }
            } while (true);


            match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
            }


            if ( state.backtracking==0 ) {
            }
            }

            if ( state.backtracking==0 ) {

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "classDefinition"

    public static class classImplements_return extends TreeRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "classImplements"
    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:80:1: classImplements : ^( Implements ( UnquotedString )+ ) ;
    public final PhpRecognizer.classImplements_return classImplements() throws RecognitionException {
        PhpRecognizer.classImplements_return retval = new PhpRecognizer.classImplements_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree Implements31=null;
        CommonTree UnquotedString32=null;

        CommonTree Implements31_tree=null;
        CommonTree UnquotedString32_tree=null;

        try {
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:81:5: ( ^( Implements ( UnquotedString )+ ) )
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:81:8: ^( Implements ( UnquotedString )+ )
            {
            root_0 = (CommonTree)adaptor.nil();

            _last = (CommonTree)input.LT(1);
            {
            CommonTree _save_last_1 = _last;
            CommonTree _first_1 = null;
            CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
            Implements31=(CommonTree)match(input,Implements,FOLLOW_Implements_in_classImplements314); if (state.failed) return retval;
            if ( state.backtracking==0 ) {
            Implements31_tree = (CommonTree)adaptor.dupNode(Implements31);

            root_1 = (CommonTree)adaptor.becomeRoot(Implements31_tree, root_1);
            }


            match(input, Token.DOWN, null); if (state.failed) return retval;
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:81:21: ( UnquotedString )+
            int cnt15=0;
            loop15:
            do {
                int alt15=2;
                int LA15_0 = input.LA(1);

                if ( (LA15_0==UnquotedString) ) {
                    alt15=1;
                }


                switch (alt15) {
            	case 1 :
            	    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:0:0: UnquotedString
            	    {
            	    _last = (CommonTree)input.LT(1);
            	    UnquotedString32=(CommonTree)match(input,UnquotedString,FOLLOW_UnquotedString_in_classImplements316); if (state.failed) return retval;
            	    if ( state.backtracking==0 ) {
            	    UnquotedString32_tree = (CommonTree)adaptor.dupNode(UnquotedString32);

            	    adaptor.addChild(root_1, UnquotedString32_tree);
            	    }

            	    if ( state.backtracking==0 ) {
            	    }
            	    }
            	    break;

            	default :
            	    if ( cnt15 >= 1 ) break loop15;
            	    if (state.backtracking>0) {state.failed=true; return retval;}
                        EarlyExitException eee =
                            new EarlyExitException(15, input);
                        throw eee;
                }
                cnt15++;
            } while (true);


            match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
            }


            if ( state.backtracking==0 ) {
            }
            }

            if ( state.backtracking==0 ) {

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "classImplements"

    public static class classMember_return extends TreeRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "classMember"
    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:84:1: classMember : ( ^( Method ^( Modifiers ( fieldModifier )* ) UnquotedString ^( Params ( paramDef )* ) ( statementBlock )? ) | ^( Var ^( Dollar UnquotedString ) ( atom )? ) | ^( Const UnquotedString ( atom )? ) | ^( Field ^( Modifiers ( fieldModifier )* ) ^( Dollar UnquotedString ) ( atom )? ) );
    public final PhpRecognizer.classMember_return classMember() throws RecognitionException {
        PhpRecognizer.classMember_return retval = new PhpRecognizer.classMember_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree Method33=null;
        CommonTree Modifiers34=null;
        CommonTree UnquotedString36=null;
        CommonTree Params37=null;
        CommonTree Var40=null;
        CommonTree Dollar41=null;
        CommonTree UnquotedString42=null;
        CommonTree Const44=null;
        CommonTree UnquotedString45=null;
        CommonTree Field47=null;
        CommonTree Modifiers48=null;
        CommonTree Dollar50=null;
        CommonTree UnquotedString51=null;
        PhpRecognizer.fieldModifier_return fieldModifier35 = null;

        PhpRecognizer.paramDef_return paramDef38 = null;

        PhpRecognizer.statementBlock_return statementBlock39 = null;

        PhpRecognizer.atom_return atom43 = null;

        PhpRecognizer.atom_return atom46 = null;

        PhpRecognizer.fieldModifier_return fieldModifier49 = null;

        PhpRecognizer.atom_return atom52 = null;


        CommonTree Method33_tree=null;
        CommonTree Modifiers34_tree=null;
        CommonTree UnquotedString36_tree=null;
        CommonTree Params37_tree=null;
        CommonTree Var40_tree=null;
        CommonTree Dollar41_tree=null;
        CommonTree UnquotedString42_tree=null;
        CommonTree Const44_tree=null;
        CommonTree UnquotedString45_tree=null;
        CommonTree Field47_tree=null;
        CommonTree Modifiers48_tree=null;
        CommonTree Dollar50_tree=null;
        CommonTree UnquotedString51_tree=null;

        try {
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:85:5: ( ^( Method ^( Modifiers ( fieldModifier )* ) UnquotedString ^( Params ( paramDef )* ) ( statementBlock )? ) | ^( Var ^( Dollar UnquotedString ) ( atom )? ) | ^( Const UnquotedString ( atom )? ) | ^( Field ^( Modifiers ( fieldModifier )* ) ^( Dollar UnquotedString ) ( atom )? ) )
            int alt23=4;
            switch ( input.LA(1) ) {
            case Method:
                {
                alt23=1;
                }
                break;
            case Var:
                {
                alt23=2;
                }
                break;
            case Const:
                {
                alt23=3;
                }
                break;
            case Field:
                {
                alt23=4;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return retval;}
                NoViableAltException nvae =
                    new NoViableAltException("", 23, 0, input);

                throw nvae;
            }

            switch (alt23) {
                case 1 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:85:7: ^( Method ^( Modifiers ( fieldModifier )* ) UnquotedString ^( Params ( paramDef )* ) ( statementBlock )? )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Method33=(CommonTree)match(input,Method,FOLLOW_Method_in_classMember336); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Method33_tree = (CommonTree)adaptor.dupNode(Method33);

                    root_1 = (CommonTree)adaptor.becomeRoot(Method33_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_2 = _last;
                    CommonTree _first_2 = null;
                    CommonTree root_2 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Modifiers34=(CommonTree)match(input,Modifiers,FOLLOW_Modifiers_in_classMember339); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Modifiers34_tree = (CommonTree)adaptor.dupNode(Modifiers34);

                    root_2 = (CommonTree)adaptor.becomeRoot(Modifiers34_tree, root_2);
                    }


                    if ( input.LA(1)==Token.DOWN ) {
                        match(input, Token.DOWN, null); if (state.failed) return retval;
                        // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:85:28: ( fieldModifier )*
                        loop16:
                        do {
                            int alt16=2;
                            int LA16_0 = input.LA(1);

                            if ( (LA16_0==Static||LA16_0==Abstract||LA16_0==AccessModifier) ) {
                                alt16=1;
                            }


                            switch (alt16) {
                        	case 1 :
                        	    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:0:0: fieldModifier
                        	    {
                        	    _last = (CommonTree)input.LT(1);
                        	    pushFollow(FOLLOW_fieldModifier_in_classMember341);
                        	    fieldModifier35=fieldModifier();

                        	    state._fsp--;
                        	    if (state.failed) return retval;
                        	    if ( state.backtracking==0 ) 
                        	    adaptor.addChild(root_2, fieldModifier35.getTree());

                        	    if ( state.backtracking==0 ) {
                        	    }
                        	    }
                        	    break;

                        	default :
                        	    break loop16;
                            }
                        } while (true);


                        match(input, Token.UP, null); if (state.failed) return retval;
                    }adaptor.addChild(root_1, root_2);_last = _save_last_2;
                    }

                    _last = (CommonTree)input.LT(1);
                    UnquotedString36=(CommonTree)match(input,UnquotedString,FOLLOW_UnquotedString_in_classMember345); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    UnquotedString36_tree = (CommonTree)adaptor.dupNode(UnquotedString36);

                    adaptor.addChild(root_1, UnquotedString36_tree);
                    }
                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_2 = _last;
                    CommonTree _first_2 = null;
                    CommonTree root_2 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Params37=(CommonTree)match(input,Params,FOLLOW_Params_in_classMember348); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Params37_tree = (CommonTree)adaptor.dupNode(Params37);

                    root_2 = (CommonTree)adaptor.becomeRoot(Params37_tree, root_2);
                    }


                    if ( input.LA(1)==Token.DOWN ) {
                        match(input, Token.DOWN, null); if (state.failed) return retval;
                        // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:85:68: ( paramDef )*
                        loop17:
                        do {
                            int alt17=2;
                            int LA17_0 = input.LA(1);

                            if ( (LA17_0==Dollar||LA17_0==Ampersand||LA17_0==Equals) ) {
                                alt17=1;
                            }


                            switch (alt17) {
                        	case 1 :
                        	    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:0:0: paramDef
                        	    {
                        	    _last = (CommonTree)input.LT(1);
                        	    pushFollow(FOLLOW_paramDef_in_classMember350);
                        	    paramDef38=paramDef();

                        	    state._fsp--;
                        	    if (state.failed) return retval;
                        	    if ( state.backtracking==0 ) 
                        	    adaptor.addChild(root_2, paramDef38.getTree());

                        	    if ( state.backtracking==0 ) {
                        	    }
                        	    }
                        	    break;

                        	default :
                        	    break loop17;
                            }
                        } while (true);


                        match(input, Token.UP, null); if (state.failed) return retval;
                    }adaptor.addChild(root_1, root_2);_last = _save_last_2;
                    }

                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:85:79: ( statementBlock )?
                    int alt18=2;
                    int LA18_0 = input.LA(1);

                    if ( (LA18_0==Block) ) {
                        alt18=1;
                    }
                    switch (alt18) {
                        case 1 :
                            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:0:0: statementBlock
                            {
                            _last = (CommonTree)input.LT(1);
                            pushFollow(FOLLOW_statementBlock_in_classMember354);
                            statementBlock39=statementBlock();

                            state._fsp--;
                            if (state.failed) return retval;
                            if ( state.backtracking==0 ) 
                            adaptor.addChild(root_1, statementBlock39.getTree());

                            if ( state.backtracking==0 ) {
                            }
                            }
                            break;

                    }


                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 2 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:86:7: ^( Var ^( Dollar UnquotedString ) ( atom )? )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Var40=(CommonTree)match(input,Var,FOLLOW_Var_in_classMember365); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Var40_tree = (CommonTree)adaptor.dupNode(Var40);

                    root_1 = (CommonTree)adaptor.becomeRoot(Var40_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_2 = _last;
                    CommonTree _first_2 = null;
                    CommonTree root_2 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Dollar41=(CommonTree)match(input,Dollar,FOLLOW_Dollar_in_classMember368); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Dollar41_tree = (CommonTree)adaptor.dupNode(Dollar41);

                    root_2 = (CommonTree)adaptor.becomeRoot(Dollar41_tree, root_2);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    UnquotedString42=(CommonTree)match(input,UnquotedString,FOLLOW_UnquotedString_in_classMember370); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    UnquotedString42_tree = (CommonTree)adaptor.dupNode(UnquotedString42);

                    adaptor.addChild(root_2, UnquotedString42_tree);
                    }

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_1, root_2);_last = _save_last_2;
                    }

                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:86:38: ( atom )?
                    int alt19=2;
                    int LA19_0 = input.LA(1);

                    if ( (LA19_0==Integer||(LA19_0>=Array && LA19_0<=Boolean)) ) {
                        alt19=1;
                    }
                    switch (alt19) {
                        case 1 :
                            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:0:0: atom
                            {
                            _last = (CommonTree)input.LT(1);
                            pushFollow(FOLLOW_atom_in_classMember373);
                            atom43=atom();

                            state._fsp--;
                            if (state.failed) return retval;
                            if ( state.backtracking==0 ) 
                            adaptor.addChild(root_1, atom43.getTree());

                            if ( state.backtracking==0 ) {
                            }
                            }
                            break;

                    }


                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 3 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:87:7: ^( Const UnquotedString ( atom )? )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Const44=(CommonTree)match(input,Const,FOLLOW_Const_in_classMember385); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Const44_tree = (CommonTree)adaptor.dupNode(Const44);

                    root_1 = (CommonTree)adaptor.becomeRoot(Const44_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    UnquotedString45=(CommonTree)match(input,UnquotedString,FOLLOW_UnquotedString_in_classMember387); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    UnquotedString45_tree = (CommonTree)adaptor.dupNode(UnquotedString45);

                    adaptor.addChild(root_1, UnquotedString45_tree);
                    }
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:87:30: ( atom )?
                    int alt20=2;
                    int LA20_0 = input.LA(1);

                    if ( (LA20_0==Integer||(LA20_0>=Array && LA20_0<=Boolean)) ) {
                        alt20=1;
                    }
                    switch (alt20) {
                        case 1 :
                            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:0:0: atom
                            {
                            _last = (CommonTree)input.LT(1);
                            pushFollow(FOLLOW_atom_in_classMember389);
                            atom46=atom();

                            state._fsp--;
                            if (state.failed) return retval;
                            if ( state.backtracking==0 ) 
                            adaptor.addChild(root_1, atom46.getTree());

                            if ( state.backtracking==0 ) {
                            }
                            }
                            break;

                    }


                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 4 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:88:7: ^( Field ^( Modifiers ( fieldModifier )* ) ^( Dollar UnquotedString ) ( atom )? )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Field47=(CommonTree)match(input,Field,FOLLOW_Field_in_classMember400); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Field47_tree = (CommonTree)adaptor.dupNode(Field47);

                    root_1 = (CommonTree)adaptor.becomeRoot(Field47_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_2 = _last;
                    CommonTree _first_2 = null;
                    CommonTree root_2 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Modifiers48=(CommonTree)match(input,Modifiers,FOLLOW_Modifiers_in_classMember403); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Modifiers48_tree = (CommonTree)adaptor.dupNode(Modifiers48);

                    root_2 = (CommonTree)adaptor.becomeRoot(Modifiers48_tree, root_2);
                    }


                    if ( input.LA(1)==Token.DOWN ) {
                        match(input, Token.DOWN, null); if (state.failed) return retval;
                        // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:88:27: ( fieldModifier )*
                        loop21:
                        do {
                            int alt21=2;
                            int LA21_0 = input.LA(1);

                            if ( (LA21_0==Static||LA21_0==Abstract||LA21_0==AccessModifier) ) {
                                alt21=1;
                            }


                            switch (alt21) {
                        	case 1 :
                        	    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:0:0: fieldModifier
                        	    {
                        	    _last = (CommonTree)input.LT(1);
                        	    pushFollow(FOLLOW_fieldModifier_in_classMember405);
                        	    fieldModifier49=fieldModifier();

                        	    state._fsp--;
                        	    if (state.failed) return retval;
                        	    if ( state.backtracking==0 ) 
                        	    adaptor.addChild(root_2, fieldModifier49.getTree());

                        	    if ( state.backtracking==0 ) {
                        	    }
                        	    }
                        	    break;

                        	default :
                        	    break loop21;
                            }
                        } while (true);


                        match(input, Token.UP, null); if (state.failed) return retval;
                    }adaptor.addChild(root_1, root_2);_last = _save_last_2;
                    }

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_2 = _last;
                    CommonTree _first_2 = null;
                    CommonTree root_2 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Dollar50=(CommonTree)match(input,Dollar,FOLLOW_Dollar_in_classMember410); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Dollar50_tree = (CommonTree)adaptor.dupNode(Dollar50);

                    root_2 = (CommonTree)adaptor.becomeRoot(Dollar50_tree, root_2);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    UnquotedString51=(CommonTree)match(input,UnquotedString,FOLLOW_UnquotedString_in_classMember412); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    UnquotedString51_tree = (CommonTree)adaptor.dupNode(UnquotedString51);

                    adaptor.addChild(root_2, UnquotedString51_tree);
                    }

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_1, root_2);_last = _save_last_2;
                    }

                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:88:68: ( atom )?
                    int alt22=2;
                    int LA22_0 = input.LA(1);

                    if ( (LA22_0==Integer||(LA22_0>=Array && LA22_0<=Boolean)) ) {
                        alt22=1;
                    }
                    switch (alt22) {
                        case 1 :
                            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:0:0: atom
                            {
                            _last = (CommonTree)input.LT(1);
                            pushFollow(FOLLOW_atom_in_classMember415);
                            atom52=atom();

                            state._fsp--;
                            if (state.failed) return retval;
                            if ( state.backtracking==0 ) 
                            adaptor.addChild(root_1, atom52.getTree());

                            if ( state.backtracking==0 ) {
                            }
                            }
                            break;

                    }


                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;

            }
            if ( state.backtracking==0 ) {

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "classMember"

    public static class statementBlock_return extends TreeRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "statementBlock"
    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:91:1: statementBlock : ^( Block ( statement )* ) ;
    public final PhpRecognizer.statementBlock_return statementBlock() throws RecognitionException {
        PhpRecognizer.statementBlock_return retval = new PhpRecognizer.statementBlock_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree Block53=null;
        PhpRecognizer.statement_return statement54 = null;


        CommonTree Block53_tree=null;

        try {
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:92:5: ( ^( Block ( statement )* ) )
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:92:7: ^( Block ( statement )* )
            {
            root_0 = (CommonTree)adaptor.nil();

            _last = (CommonTree)input.LT(1);
            {
            CommonTree _save_last_1 = _last;
            CommonTree _first_1 = null;
            CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
            Block53=(CommonTree)match(input,Block,FOLLOW_Block_in_statementBlock439); if (state.failed) return retval;
            if ( state.backtracking==0 ) {
            Block53_tree = (CommonTree)adaptor.dupNode(Block53);

            root_1 = (CommonTree)adaptor.becomeRoot(Block53_tree, root_1);
            }


            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); if (state.failed) return retval;
                // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:92:15: ( statement )*
                loop24:
                do {
                    int alt24=2;
                    int LA24_0 = input.LA(1);

                    if ( (LA24_0==OpenSquareBrace||(LA24_0>=LogicalOr && LA24_0<=SuppressWarnings)||LA24_0==Dollar||(LA24_0>=Dot && LA24_0<=If)||(LA24_0>=For && LA24_0<=Switch)||(LA24_0>=Function && LA24_0<=Interface)||LA24_0==Block||LA24_0==Apply||(LA24_0>=Prefix && LA24_0<=IfExpression)||LA24_0==Cast||(LA24_0>=BodyString && LA24_0<=UnquotedString)||(LA24_0>=Integer && LA24_0<=EqualityOperator)||LA24_0==ShiftOperator||(LA24_0>=Array && LA24_0<=Boolean)) ) {
                        alt24=1;
                    }


                    switch (alt24) {
                	case 1 :
                	    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:0:0: statement
                	    {
                	    _last = (CommonTree)input.LT(1);
                	    pushFollow(FOLLOW_statement_in_statementBlock441);
                	    statement54=statement();

                	    state._fsp--;
                	    if (state.failed) return retval;
                	    if ( state.backtracking==0 ) 
                	    adaptor.addChild(root_1, statement54.getTree());

                	    if ( state.backtracking==0 ) {
                	    }
                	    }
                	    break;

                	default :
                	    break loop24;
                    }
                } while (true);


                match(input, Token.UP, null); if (state.failed) return retval;
            }adaptor.addChild(root_0, root_1);_last = _save_last_1;
            }


            if ( state.backtracking==0 ) {
            }
            }

            if ( state.backtracking==0 ) {

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "statementBlock"

    public static class fieldDefinition_return extends TreeRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "fieldDefinition"
    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:95:1: fieldDefinition : ^( Field ^( Dollar UnquotedString ) ( atom )? ) ;
    public final PhpRecognizer.fieldDefinition_return fieldDefinition() throws RecognitionException {
        PhpRecognizer.fieldDefinition_return retval = new PhpRecognizer.fieldDefinition_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree Field55=null;
        CommonTree Dollar56=null;
        CommonTree UnquotedString57=null;
        PhpRecognizer.atom_return atom58 = null;


        CommonTree Field55_tree=null;
        CommonTree Dollar56_tree=null;
        CommonTree UnquotedString57_tree=null;

        try {
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:96:5: ( ^( Field ^( Dollar UnquotedString ) ( atom )? ) )
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:96:7: ^( Field ^( Dollar UnquotedString ) ( atom )? )
            {
            root_0 = (CommonTree)adaptor.nil();

            _last = (CommonTree)input.LT(1);
            {
            CommonTree _save_last_1 = _last;
            CommonTree _first_1 = null;
            CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
            Field55=(CommonTree)match(input,Field,FOLLOW_Field_in_fieldDefinition461); if (state.failed) return retval;
            if ( state.backtracking==0 ) {
            Field55_tree = (CommonTree)adaptor.dupNode(Field55);

            root_1 = (CommonTree)adaptor.becomeRoot(Field55_tree, root_1);
            }


            match(input, Token.DOWN, null); if (state.failed) return retval;
            _last = (CommonTree)input.LT(1);
            {
            CommonTree _save_last_2 = _last;
            CommonTree _first_2 = null;
            CommonTree root_2 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
            Dollar56=(CommonTree)match(input,Dollar,FOLLOW_Dollar_in_fieldDefinition464); if (state.failed) return retval;
            if ( state.backtracking==0 ) {
            Dollar56_tree = (CommonTree)adaptor.dupNode(Dollar56);

            root_2 = (CommonTree)adaptor.becomeRoot(Dollar56_tree, root_2);
            }


            match(input, Token.DOWN, null); if (state.failed) return retval;
            _last = (CommonTree)input.LT(1);
            UnquotedString57=(CommonTree)match(input,UnquotedString,FOLLOW_UnquotedString_in_fieldDefinition466); if (state.failed) return retval;
            if ( state.backtracking==0 ) {
            UnquotedString57_tree = (CommonTree)adaptor.dupNode(UnquotedString57);

            adaptor.addChild(root_2, UnquotedString57_tree);
            }

            match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_1, root_2);_last = _save_last_2;
            }

            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:96:40: ( atom )?
            int alt25=2;
            int LA25_0 = input.LA(1);

            if ( (LA25_0==Integer||(LA25_0>=Array && LA25_0<=Boolean)) ) {
                alt25=1;
            }
            switch (alt25) {
                case 1 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:0:0: atom
                    {
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_atom_in_fieldDefinition469);
                    atom58=atom();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, atom58.getTree());

                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;

            }


            match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
            }


            if ( state.backtracking==0 ) {
            }
            }

            if ( state.backtracking==0 ) {

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "fieldDefinition"

    public static class classModifier_return extends TreeRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "classModifier"
    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:99:1: classModifier : 'abstract' ;
    public final PhpRecognizer.classModifier_return classModifier() throws RecognitionException {
        PhpRecognizer.classModifier_return retval = new PhpRecognizer.classModifier_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree string_literal59=null;

        CommonTree string_literal59_tree=null;

        try {
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:100:5: ( 'abstract' )
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:100:7: 'abstract'
            {
            root_0 = (CommonTree)adaptor.nil();

            _last = (CommonTree)input.LT(1);
            string_literal59=(CommonTree)match(input,Abstract,FOLLOW_Abstract_in_classModifier492); if (state.failed) return retval;
            if ( state.backtracking==0 ) {
            string_literal59_tree = (CommonTree)adaptor.dupNode(string_literal59);

            adaptor.addChild(root_0, string_literal59_tree);
            }

            if ( state.backtracking==0 ) {
            }
            }

            if ( state.backtracking==0 ) {

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "classModifier"

    public static class fieldModifier_return extends TreeRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "fieldModifier"
    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:102:1: fieldModifier : ( AccessModifier | 'abstract' | 'static' );
    public final PhpRecognizer.fieldModifier_return fieldModifier() throws RecognitionException {
        PhpRecognizer.fieldModifier_return retval = new PhpRecognizer.fieldModifier_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree set60=null;

        CommonTree set60_tree=null;

        try {
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:103:5: ( AccessModifier | 'abstract' | 'static' )
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:
            {
            root_0 = (CommonTree)adaptor.nil();

            _last = (CommonTree)input.LT(1);
            set60=(CommonTree)input.LT(1);
            if ( input.LA(1)==Static||input.LA(1)==Abstract||input.LA(1)==AccessModifier ) {
                input.consume();

                if ( state.backtracking==0 ) {
                set60_tree = (CommonTree)adaptor.dupNode(set60);

                adaptor.addChild(root_0, set60_tree);
                }
                state.errorRecovery=false;state.failed=false;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return retval;}
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }

            if ( state.backtracking==0 ) {
            } 

            }

            if ( state.backtracking==0 ) {

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "fieldModifier"

    public static class complexStatement_return extends TreeRuleReturnScope {
        public PhpStatement value;
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "complexStatement"
    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:107:1: complexStatement returns [PhpStatement value] : ( ^( 'if' expression smt= statement (els= statement )? ) | ^( For forInit forCondition forUpdate statement ) | ^( Foreach variable arrayEntry statement ) | ^( While expression statement ) | ^( Do statement expression ) | ^( Switch expression cases ) | functionDefinition );
    public final PhpRecognizer.complexStatement_return complexStatement() throws RecognitionException {
        PhpRecognizer.complexStatement_return retval = new PhpRecognizer.complexStatement_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree string_literal61=null;
        CommonTree For63=null;
        CommonTree Foreach68=null;
        CommonTree While72=null;
        CommonTree Do75=null;
        CommonTree Switch78=null;
        PhpRecognizer.statement_return smt = null;

        PhpRecognizer.statement_return els = null;

        PhpRecognizer.expression_return expression62 = null;

        PhpRecognizer.forInit_return forInit64 = null;

        PhpRecognizer.forCondition_return forCondition65 = null;

        PhpRecognizer.forUpdate_return forUpdate66 = null;

        PhpRecognizer.statement_return statement67 = null;

        PhpRecognizer.variable_return variable69 = null;

        PhpRecognizer.arrayEntry_return arrayEntry70 = null;

        PhpRecognizer.statement_return statement71 = null;

        PhpRecognizer.expression_return expression73 = null;

        PhpRecognizer.statement_return statement74 = null;

        PhpRecognizer.statement_return statement76 = null;

        PhpRecognizer.expression_return expression77 = null;

        PhpRecognizer.expression_return expression79 = null;

        PhpRecognizer.cases_return cases80 = null;

        PhpRecognizer.functionDefinition_return functionDefinition81 = null;


        CommonTree string_literal61_tree=null;
        CommonTree For63_tree=null;
        CommonTree Foreach68_tree=null;
        CommonTree While72_tree=null;
        CommonTree Do75_tree=null;
        CommonTree Switch78_tree=null;

        try {
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:108:5: ( ^( 'if' expression smt= statement (els= statement )? ) | ^( For forInit forCondition forUpdate statement ) | ^( Foreach variable arrayEntry statement ) | ^( While expression statement ) | ^( Do statement expression ) | ^( Switch expression cases ) | functionDefinition )
            int alt27=7;
            switch ( input.LA(1) ) {
            case If:
                {
                alt27=1;
                }
                break;
            case For:
                {
                alt27=2;
                }
                break;
            case Foreach:
                {
                alt27=3;
                }
                break;
            case While:
                {
                alt27=4;
                }
                break;
            case Do:
                {
                alt27=5;
                }
                break;
            case Switch:
                {
                alt27=6;
                }
                break;
            case Function:
                {
                alt27=7;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return retval;}
                NoViableAltException nvae =
                    new NoViableAltException("", 27, 0, input);

                throw nvae;
            }

            switch (alt27) {
                case 1 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:108:7: ^( 'if' expression smt= statement (els= statement )? )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    string_literal61=(CommonTree)match(input,If,FOLLOW_If_in_complexStatement539); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    string_literal61_tree = (CommonTree)adaptor.dupNode(string_literal61);

                    root_1 = (CommonTree)adaptor.becomeRoot(string_literal61_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_complexStatement541);
                    expression62=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression62.getTree());
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_statement_in_complexStatement545);
                    smt=statement();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, smt.getTree());
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:108:42: (els= statement )?
                    int alt26=2;
                    int LA26_0 = input.LA(1);

                    if ( (LA26_0==OpenSquareBrace||(LA26_0>=LogicalOr && LA26_0<=SuppressWarnings)||LA26_0==Dollar||(LA26_0>=Dot && LA26_0<=If)||(LA26_0>=For && LA26_0<=Switch)||(LA26_0>=Function && LA26_0<=Interface)||LA26_0==Block||LA26_0==Apply||(LA26_0>=Prefix && LA26_0<=IfExpression)||LA26_0==Cast||(LA26_0>=BodyString && LA26_0<=UnquotedString)||(LA26_0>=Integer && LA26_0<=EqualityOperator)||LA26_0==ShiftOperator||(LA26_0>=Array && LA26_0<=Boolean)) ) {
                        alt26=1;
                    }
                    switch (alt26) {
                        case 1 :
                            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:0:0: els= statement
                            {
                            _last = (CommonTree)input.LT(1);
                            pushFollow(FOLLOW_statement_in_complexStatement549);
                            els=statement();

                            state._fsp--;
                            if (state.failed) return retval;
                            if ( state.backtracking==0 ) 
                            adaptor.addChild(root_1, els.getTree());

                            if ( state.backtracking==0 ) {
                            }
                            }
                            break;

                    }


                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }

                    if ( state.backtracking==0 ) {
                       retval.value = new IfStatement((expression62!=null?expression62.value:null), (smt!=null?smt.value:null), (els!=null?els.value:null));
                    }

                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 2 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:110:7: ^( For forInit forCondition forUpdate statement )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    For63=(CommonTree)match(input,For,FOLLOW_For_in_complexStatement569); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    For63_tree = (CommonTree)adaptor.dupNode(For63);

                    root_1 = (CommonTree)adaptor.becomeRoot(For63_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_forInit_in_complexStatement571);
                    forInit64=forInit();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, forInit64.getTree());
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_forCondition_in_complexStatement573);
                    forCondition65=forCondition();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, forCondition65.getTree());
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_forUpdate_in_complexStatement575);
                    forUpdate66=forUpdate();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, forUpdate66.getTree());
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_statement_in_complexStatement577);
                    statement67=statement();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, statement67.getTree());

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }

                    if ( state.backtracking==0 ) {
                       retval.value = new ForStatement((forInit64!=null?forInit64.value:null), (forCondition65!=null?forCondition65.value:null), (forUpdate66!=null?forUpdate66.value:null), (statement67!=null?statement67.value:null));
                    }

                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 3 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:112:7: ^( Foreach variable arrayEntry statement )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Foreach68=(CommonTree)match(input,Foreach,FOLLOW_Foreach_in_complexStatement595); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Foreach68_tree = (CommonTree)adaptor.dupNode(Foreach68);

                    root_1 = (CommonTree)adaptor.becomeRoot(Foreach68_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_variable_in_complexStatement597);
                    variable69=variable();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, variable69.getTree());
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_arrayEntry_in_complexStatement599);
                    arrayEntry70=arrayEntry();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, arrayEntry70.getTree());
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_statement_in_complexStatement601);
                    statement71=statement();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, statement71.getTree());

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 4 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:114:7: ^( While expression statement )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    While72=(CommonTree)match(input,While,FOLLOW_While_in_complexStatement618); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    While72_tree = (CommonTree)adaptor.dupNode(While72);

                    root_1 = (CommonTree)adaptor.becomeRoot(While72_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_complexStatement620);
                    expression73=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression73.getTree());
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_statement_in_complexStatement622);
                    statement74=statement();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, statement74.getTree());

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 5 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:115:7: ^( Do statement expression )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Do75=(CommonTree)match(input,Do,FOLLOW_Do_in_complexStatement636); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Do75_tree = (CommonTree)adaptor.dupNode(Do75);

                    root_1 = (CommonTree)adaptor.becomeRoot(Do75_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_statement_in_complexStatement638);
                    statement76=statement();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, statement76.getTree());
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_complexStatement640);
                    expression77=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression77.getTree());

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 6 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:116:7: ^( Switch expression cases )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Switch78=(CommonTree)match(input,Switch,FOLLOW_Switch_in_complexStatement650); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Switch78_tree = (CommonTree)adaptor.dupNode(Switch78);

                    root_1 = (CommonTree)adaptor.becomeRoot(Switch78_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_complexStatement652);
                    expression79=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression79.getTree());
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_cases_in_complexStatement654);
                    cases80=cases();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, cases80.getTree());

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 7 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:117:7: functionDefinition
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_functionDefinition_in_complexStatement663);
                    functionDefinition81=functionDefinition();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_0, functionDefinition81.getTree());

                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;

            }
            if ( state.backtracking==0 ) {

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "complexStatement"

    public static class simpleStatement_return extends TreeRuleReturnScope {
        public PhpStatement value;
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "simpleStatement"
    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:120:1: simpleStatement returns [PhpStatement value] : ( ^( Echo (exps+= expression )+ ) | ^( Global (idents+= name )+ ) | ^( Static variable atom ) | ^( Break ( Integer )? ) | ^( Continue ( Integer )? ) | ^( Return ( expression )? ) | ^( RequireOperator expression ) | expression );
    public final PhpRecognizer.simpleStatement_return simpleStatement() throws RecognitionException {
        PhpRecognizer.simpleStatement_return retval = new PhpRecognizer.simpleStatement_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree Echo82=null;
        CommonTree Global83=null;
        CommonTree Static84=null;
        CommonTree Break87=null;
        CommonTree Integer88=null;
        CommonTree Continue89=null;
        CommonTree Integer90=null;
        CommonTree Return91=null;
        CommonTree RequireOperator93=null;
        List list_exps=null;
        List list_idents=null;
        PhpRecognizer.variable_return variable85 = null;

        PhpRecognizer.atom_return atom86 = null;

        PhpRecognizer.expression_return expression92 = null;

        PhpRecognizer.expression_return expression94 = null;

        PhpRecognizer.expression_return expression95 = null;

        PhpRecognizer.expression_return exps = null;
         exps = null;
        PhpRecognizer.name_return idents = null;
         idents = null;
        CommonTree Echo82_tree=null;
        CommonTree Global83_tree=null;
        CommonTree Static84_tree=null;
        CommonTree Break87_tree=null;
        CommonTree Integer88_tree=null;
        CommonTree Continue89_tree=null;
        CommonTree Integer90_tree=null;
        CommonTree Return91_tree=null;
        CommonTree RequireOperator93_tree=null;

        try {
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:121:5: ( ^( Echo (exps+= expression )+ ) | ^( Global (idents+= name )+ ) | ^( Static variable atom ) | ^( Break ( Integer )? ) | ^( Continue ( Integer )? ) | ^( Return ( expression )? ) | ^( RequireOperator expression ) | expression )
            int alt33=8;
            switch ( input.LA(1) ) {
            case Echo:
                {
                alt33=1;
                }
                break;
            case Global:
                {
                alt33=2;
                }
                break;
            case Static:
                {
                alt33=3;
                }
                break;
            case Break:
                {
                alt33=4;
                }
                break;
            case Continue:
                {
                alt33=5;
                }
                break;
            case Return:
                {
                alt33=6;
                }
                break;
            case RequireOperator:
                {
                alt33=7;
                }
                break;
            case OpenSquareBrace:
            case LogicalOr:
            case LogicalAnd:
            case ClassMember:
            case InstanceMember:
            case SuppressWarnings:
            case Dollar:
            case Dot:
            case Ampersand:
            case Pipe:
            case Bang:
            case Plus:
            case Minus:
            case Asterisk:
            case Percent:
            case Forwardslash:
            case Tilde:
            case Equals:
            case New:
            case Clone:
            case And:
            case Or:
            case Xor:
            case Instanceof:
            case Apply:
            case Prefix:
            case Postfix:
            case IfExpression:
            case Cast:
            case UnquotedString:
            case Integer:
            case AsignmentOperator:
            case EqualityOperator:
            case ShiftOperator:
            case Array:
            case SingleQuotedString:
            case DoubleQuotedString:
            case HereDoc:
            case Real:
            case Boolean:
                {
                alt33=8;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return retval;}
                NoViableAltException nvae =
                    new NoViableAltException("", 33, 0, input);

                throw nvae;
            }

            switch (alt33) {
                case 1 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:121:7: ^( Echo (exps+= expression )+ )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Echo82=(CommonTree)match(input,Echo,FOLLOW_Echo_in_simpleStatement684); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Echo82_tree = (CommonTree)adaptor.dupNode(Echo82);

                    root_1 = (CommonTree)adaptor.becomeRoot(Echo82_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:121:14: (exps+= expression )+
                    int cnt28=0;
                    loop28:
                    do {
                        int alt28=2;
                        int LA28_0 = input.LA(1);

                        if ( (LA28_0==OpenSquareBrace||(LA28_0>=LogicalOr && LA28_0<=SuppressWarnings)||LA28_0==Dollar||(LA28_0>=Dot && LA28_0<=Clone)||(LA28_0>=And && LA28_0<=Instanceof)||LA28_0==Apply||(LA28_0>=Prefix && LA28_0<=IfExpression)||LA28_0==Cast||LA28_0==UnquotedString||LA28_0==Integer||(LA28_0>=AsignmentOperator && LA28_0<=EqualityOperator)||LA28_0==ShiftOperator||(LA28_0>=Array && LA28_0<=Boolean)) ) {
                            alt28=1;
                        }


                        switch (alt28) {
                    	case 1 :
                    	    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:121:15: exps+= expression
                    	    {
                    	    _last = (CommonTree)input.LT(1);
                    	    pushFollow(FOLLOW_expression_in_simpleStatement689);
                    	    exps=expression();

                    	    state._fsp--;
                    	    if (state.failed) return retval;
                    	    if ( state.backtracking==0 ) 
                    	    adaptor.addChild(root_1, exps.getTree());
                    	    if (list_exps==null) list_exps=new ArrayList();
                    	    list_exps.add(exps.getTree());


                    	    if ( state.backtracking==0 ) {
                    	    }
                    	    }
                    	    break;

                    	default :
                    	    if ( cnt28 >= 1 ) break loop28;
                    	    if (state.backtracking>0) {state.failed=true; return retval;}
                                EarlyExitException eee =
                                    new EarlyExitException(28, input);
                                throw eee;
                        }
                        cnt28++;
                    } while (true);


                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }

                    if ( state.backtracking==0 ) {
                      retval.value = new EchoOperator(list_exps);
                    }

                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 2 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:123:7: ^( Global (idents+= name )+ )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Global83=(CommonTree)match(input,Global,FOLLOW_Global_in_simpleStatement709); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Global83_tree = (CommonTree)adaptor.dupNode(Global83);

                    root_1 = (CommonTree)adaptor.becomeRoot(Global83_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:123:16: (idents+= name )+
                    int cnt29=0;
                    loop29:
                    do {
                        int alt29=2;
                        int LA29_0 = input.LA(1);

                        if ( (LA29_0==OpenSquareBrace||(LA29_0>=ClassMember && LA29_0<=InstanceMember)||LA29_0==Dollar||LA29_0==UnquotedString) ) {
                            alt29=1;
                        }


                        switch (alt29) {
                    	case 1 :
                    	    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:123:17: idents+= name
                    	    {
                    	    _last = (CommonTree)input.LT(1);
                    	    pushFollow(FOLLOW_name_in_simpleStatement714);
                    	    idents=name();

                    	    state._fsp--;
                    	    if (state.failed) return retval;
                    	    if ( state.backtracking==0 ) 
                    	    adaptor.addChild(root_1, idents.getTree());
                    	    if (list_idents==null) list_idents=new ArrayList();
                    	    list_idents.add(idents.getTree());


                    	    if ( state.backtracking==0 ) {
                    	    }
                    	    }
                    	    break;

                    	default :
                    	    if ( cnt29 >= 1 ) break loop29;
                    	    if (state.backtracking>0) {state.failed=true; return retval;}
                                EarlyExitException eee =
                                    new EarlyExitException(29, input);
                                throw eee;
                        }
                        cnt29++;
                    } while (true);


                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }

                    if ( state.backtracking==0 ) {
                      retval.value = new GlobalOperator(list_idents);
                    }

                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 3 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:125:7: ^( Static variable atom )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Static84=(CommonTree)match(input,Static,FOLLOW_Static_in_simpleStatement734); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Static84_tree = (CommonTree)adaptor.dupNode(Static84);

                    root_1 = (CommonTree)adaptor.becomeRoot(Static84_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_variable_in_simpleStatement736);
                    variable85=variable();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, variable85.getTree());
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_atom_in_simpleStatement738);
                    atom86=atom();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, atom86.getTree());

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 4 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:126:7: ^( Break ( Integer )? )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Break87=(CommonTree)match(input,Break,FOLLOW_Break_in_simpleStatement748); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Break87_tree = (CommonTree)adaptor.dupNode(Break87);

                    root_1 = (CommonTree)adaptor.becomeRoot(Break87_tree, root_1);
                    }


                    if ( input.LA(1)==Token.DOWN ) {
                        match(input, Token.DOWN, null); if (state.failed) return retval;
                        // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:126:15: ( Integer )?
                        int alt30=2;
                        int LA30_0 = input.LA(1);

                        if ( (LA30_0==Integer) ) {
                            alt30=1;
                        }
                        switch (alt30) {
                            case 1 :
                                // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:0:0: Integer
                                {
                                _last = (CommonTree)input.LT(1);
                                Integer88=(CommonTree)match(input,Integer,FOLLOW_Integer_in_simpleStatement750); if (state.failed) return retval;
                                if ( state.backtracking==0 ) {
                                Integer88_tree = (CommonTree)adaptor.dupNode(Integer88);

                                adaptor.addChild(root_1, Integer88_tree);
                                }

                                if ( state.backtracking==0 ) {
                                }
                                }
                                break;

                        }


                        match(input, Token.UP, null); if (state.failed) return retval;
                    }adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }

                    if ( state.backtracking==0 ) {
                      retval.value = new BreakStatement();
                    }

                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 5 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:128:7: ^( Continue ( Integer )? )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Continue89=(CommonTree)match(input,Continue,FOLLOW_Continue_in_simpleStatement769); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Continue89_tree = (CommonTree)adaptor.dupNode(Continue89);

                    root_1 = (CommonTree)adaptor.becomeRoot(Continue89_tree, root_1);
                    }


                    if ( input.LA(1)==Token.DOWN ) {
                        match(input, Token.DOWN, null); if (state.failed) return retval;
                        // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:128:18: ( Integer )?
                        int alt31=2;
                        int LA31_0 = input.LA(1);

                        if ( (LA31_0==Integer) ) {
                            alt31=1;
                        }
                        switch (alt31) {
                            case 1 :
                                // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:0:0: Integer
                                {
                                _last = (CommonTree)input.LT(1);
                                Integer90=(CommonTree)match(input,Integer,FOLLOW_Integer_in_simpleStatement771); if (state.failed) return retval;
                                if ( state.backtracking==0 ) {
                                Integer90_tree = (CommonTree)adaptor.dupNode(Integer90);

                                adaptor.addChild(root_1, Integer90_tree);
                                }

                                if ( state.backtracking==0 ) {
                                }
                                }
                                break;

                        }


                        match(input, Token.UP, null); if (state.failed) return retval;
                    }adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }

                    if ( state.backtracking==0 ) {
                      retval.value = new ContinueStatement();
                    }

                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 6 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:131:7: ^( Return ( expression )? )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Return91=(CommonTree)match(input,Return,FOLLOW_Return_in_simpleStatement795); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Return91_tree = (CommonTree)adaptor.dupNode(Return91);

                    root_1 = (CommonTree)adaptor.becomeRoot(Return91_tree, root_1);
                    }


                    if ( input.LA(1)==Token.DOWN ) {
                        match(input, Token.DOWN, null); if (state.failed) return retval;
                        // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:131:16: ( expression )?
                        int alt32=2;
                        int LA32_0 = input.LA(1);

                        if ( (LA32_0==OpenSquareBrace||(LA32_0>=LogicalOr && LA32_0<=SuppressWarnings)||LA32_0==Dollar||(LA32_0>=Dot && LA32_0<=Clone)||(LA32_0>=And && LA32_0<=Instanceof)||LA32_0==Apply||(LA32_0>=Prefix && LA32_0<=IfExpression)||LA32_0==Cast||LA32_0==UnquotedString||LA32_0==Integer||(LA32_0>=AsignmentOperator && LA32_0<=EqualityOperator)||LA32_0==ShiftOperator||(LA32_0>=Array && LA32_0<=Boolean)) ) {
                            alt32=1;
                        }
                        switch (alt32) {
                            case 1 :
                                // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:0:0: expression
                                {
                                _last = (CommonTree)input.LT(1);
                                pushFollow(FOLLOW_expression_in_simpleStatement797);
                                expression92=expression();

                                state._fsp--;
                                if (state.failed) return retval;
                                if ( state.backtracking==0 ) 
                                adaptor.addChild(root_1, expression92.getTree());

                                if ( state.backtracking==0 ) {
                                }
                                }
                                break;

                        }


                        match(input, Token.UP, null); if (state.failed) return retval;
                    }adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }

                    if ( state.backtracking==0 ) {
                      retval.value = new ReturnOperator((expression92!=null?expression92.value:null));
                    }

                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 7 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:133:7: ^( RequireOperator expression )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    RequireOperator93=(CommonTree)match(input,RequireOperator,FOLLOW_RequireOperator_in_simpleStatement816); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    RequireOperator93_tree = (CommonTree)adaptor.dupNode(RequireOperator93);

                    root_1 = (CommonTree)adaptor.becomeRoot(RequireOperator93_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_simpleStatement818);
                    expression94=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression94.getTree());

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }

                    if ( state.backtracking==0 ) {
                      retval.value = new RequireOperator((expression94!=null?expression94.value:null));
                    }

                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 8 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:135:7: expression
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_simpleStatement835);
                    expression95=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_0, expression95.getTree());
                    if ( state.backtracking==0 ) {
                      retval.value = (expression95!=null?expression95.value:null);
                    }

                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;

            }
            if ( state.backtracking==0 ) {

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "simpleStatement"

    public static class forInit_return extends TreeRuleReturnScope {
        public PhpExpression value;
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "forInit"
    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:140:1: forInit returns [PhpExpression value] : ^( ForInit ( expression )+ ) ;
    public final PhpRecognizer.forInit_return forInit() throws RecognitionException {
        PhpRecognizer.forInit_return retval = new PhpRecognizer.forInit_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree ForInit96=null;
        PhpRecognizer.expression_return expression97 = null;


        CommonTree ForInit96_tree=null;

        try {
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:141:5: ( ^( ForInit ( expression )+ ) )
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:141:7: ^( ForInit ( expression )+ )
            {
            root_0 = (CommonTree)adaptor.nil();

            _last = (CommonTree)input.LT(1);
            {
            CommonTree _save_last_1 = _last;
            CommonTree _first_1 = null;
            CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
            ForInit96=(CommonTree)match(input,ForInit,FOLLOW_ForInit_in_forInit865); if (state.failed) return retval;
            if ( state.backtracking==0 ) {
            ForInit96_tree = (CommonTree)adaptor.dupNode(ForInit96);

            root_1 = (CommonTree)adaptor.becomeRoot(ForInit96_tree, root_1);
            }


            match(input, Token.DOWN, null); if (state.failed) return retval;
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:141:17: ( expression )+
            int cnt34=0;
            loop34:
            do {
                int alt34=2;
                int LA34_0 = input.LA(1);

                if ( (LA34_0==OpenSquareBrace||(LA34_0>=LogicalOr && LA34_0<=SuppressWarnings)||LA34_0==Dollar||(LA34_0>=Dot && LA34_0<=Clone)||(LA34_0>=And && LA34_0<=Instanceof)||LA34_0==Apply||(LA34_0>=Prefix && LA34_0<=IfExpression)||LA34_0==Cast||LA34_0==UnquotedString||LA34_0==Integer||(LA34_0>=AsignmentOperator && LA34_0<=EqualityOperator)||LA34_0==ShiftOperator||(LA34_0>=Array && LA34_0<=Boolean)) ) {
                    alt34=1;
                }


                switch (alt34) {
            	case 1 :
            	    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:0:0: expression
            	    {
            	    _last = (CommonTree)input.LT(1);
            	    pushFollow(FOLLOW_expression_in_forInit867);
            	    expression97=expression();

            	    state._fsp--;
            	    if (state.failed) return retval;
            	    if ( state.backtracking==0 ) 
            	    adaptor.addChild(root_1, expression97.getTree());

            	    if ( state.backtracking==0 ) {
            	    }
            	    }
            	    break;

            	default :
            	    if ( cnt34 >= 1 ) break loop34;
            	    if (state.backtracking>0) {state.failed=true; return retval;}
                        EarlyExitException eee =
                            new EarlyExitException(34, input);
                        throw eee;
                }
                cnt34++;
            } while (true);


            match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
            }


            if ( state.backtracking==0 ) {
            }
            }

            if ( state.backtracking==0 ) {

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "forInit"

    public static class forCondition_return extends TreeRuleReturnScope {
        public PhpExpression value;
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "forCondition"
    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:144:1: forCondition returns [PhpExpression value] : ^( ForCondition ( expression )+ ) ;
    public final PhpRecognizer.forCondition_return forCondition() throws RecognitionException {
        PhpRecognizer.forCondition_return retval = new PhpRecognizer.forCondition_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree ForCondition98=null;
        PhpRecognizer.expression_return expression99 = null;


        CommonTree ForCondition98_tree=null;

        try {
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:145:5: ( ^( ForCondition ( expression )+ ) )
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:145:7: ^( ForCondition ( expression )+ )
            {
            root_0 = (CommonTree)adaptor.nil();

            _last = (CommonTree)input.LT(1);
            {
            CommonTree _save_last_1 = _last;
            CommonTree _first_1 = null;
            CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
            ForCondition98=(CommonTree)match(input,ForCondition,FOLLOW_ForCondition_in_forCondition890); if (state.failed) return retval;
            if ( state.backtracking==0 ) {
            ForCondition98_tree = (CommonTree)adaptor.dupNode(ForCondition98);

            root_1 = (CommonTree)adaptor.becomeRoot(ForCondition98_tree, root_1);
            }


            match(input, Token.DOWN, null); if (state.failed) return retval;
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:145:22: ( expression )+
            int cnt35=0;
            loop35:
            do {
                int alt35=2;
                int LA35_0 = input.LA(1);

                if ( (LA35_0==OpenSquareBrace||(LA35_0>=LogicalOr && LA35_0<=SuppressWarnings)||LA35_0==Dollar||(LA35_0>=Dot && LA35_0<=Clone)||(LA35_0>=And && LA35_0<=Instanceof)||LA35_0==Apply||(LA35_0>=Prefix && LA35_0<=IfExpression)||LA35_0==Cast||LA35_0==UnquotedString||LA35_0==Integer||(LA35_0>=AsignmentOperator && LA35_0<=EqualityOperator)||LA35_0==ShiftOperator||(LA35_0>=Array && LA35_0<=Boolean)) ) {
                    alt35=1;
                }


                switch (alt35) {
            	case 1 :
            	    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:0:0: expression
            	    {
            	    _last = (CommonTree)input.LT(1);
            	    pushFollow(FOLLOW_expression_in_forCondition892);
            	    expression99=expression();

            	    state._fsp--;
            	    if (state.failed) return retval;
            	    if ( state.backtracking==0 ) 
            	    adaptor.addChild(root_1, expression99.getTree());

            	    if ( state.backtracking==0 ) {
            	    }
            	    }
            	    break;

            	default :
            	    if ( cnt35 >= 1 ) break loop35;
            	    if (state.backtracking>0) {state.failed=true; return retval;}
                        EarlyExitException eee =
                            new EarlyExitException(35, input);
                        throw eee;
                }
                cnt35++;
            } while (true);


            match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
            }


            if ( state.backtracking==0 ) {
            }
            }

            if ( state.backtracking==0 ) {

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "forCondition"

    public static class forUpdate_return extends TreeRuleReturnScope {
        public PhpExpression value;
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "forUpdate"
    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:148:1: forUpdate returns [PhpExpression value] : ^( ForUpdate ( expression )+ ) ;
    public final PhpRecognizer.forUpdate_return forUpdate() throws RecognitionException {
        PhpRecognizer.forUpdate_return retval = new PhpRecognizer.forUpdate_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree ForUpdate100=null;
        PhpRecognizer.expression_return expression101 = null;


        CommonTree ForUpdate100_tree=null;

        try {
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:149:5: ( ^( ForUpdate ( expression )+ ) )
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:149:7: ^( ForUpdate ( expression )+ )
            {
            root_0 = (CommonTree)adaptor.nil();

            _last = (CommonTree)input.LT(1);
            {
            CommonTree _save_last_1 = _last;
            CommonTree _first_1 = null;
            CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
            ForUpdate100=(CommonTree)match(input,ForUpdate,FOLLOW_ForUpdate_in_forUpdate919); if (state.failed) return retval;
            if ( state.backtracking==0 ) {
            ForUpdate100_tree = (CommonTree)adaptor.dupNode(ForUpdate100);

            root_1 = (CommonTree)adaptor.becomeRoot(ForUpdate100_tree, root_1);
            }


            match(input, Token.DOWN, null); if (state.failed) return retval;
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:149:19: ( expression )+
            int cnt36=0;
            loop36:
            do {
                int alt36=2;
                int LA36_0 = input.LA(1);

                if ( (LA36_0==OpenSquareBrace||(LA36_0>=LogicalOr && LA36_0<=SuppressWarnings)||LA36_0==Dollar||(LA36_0>=Dot && LA36_0<=Clone)||(LA36_0>=And && LA36_0<=Instanceof)||LA36_0==Apply||(LA36_0>=Prefix && LA36_0<=IfExpression)||LA36_0==Cast||LA36_0==UnquotedString||LA36_0==Integer||(LA36_0>=AsignmentOperator && LA36_0<=EqualityOperator)||LA36_0==ShiftOperator||(LA36_0>=Array && LA36_0<=Boolean)) ) {
                    alt36=1;
                }


                switch (alt36) {
            	case 1 :
            	    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:0:0: expression
            	    {
            	    _last = (CommonTree)input.LT(1);
            	    pushFollow(FOLLOW_expression_in_forUpdate921);
            	    expression101=expression();

            	    state._fsp--;
            	    if (state.failed) return retval;
            	    if ( state.backtracking==0 ) 
            	    adaptor.addChild(root_1, expression101.getTree());

            	    if ( state.backtracking==0 ) {
            	    }
            	    }
            	    break;

            	default :
            	    if ( cnt36 >= 1 ) break loop36;
            	    if (state.backtracking>0) {state.failed=true; return retval;}
                        EarlyExitException eee =
                            new EarlyExitException(36, input);
                        throw eee;
                }
                cnt36++;
            } while (true);


            match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
            }


            if ( state.backtracking==0 ) {
            }
            }

            if ( state.backtracking==0 ) {

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "forUpdate"

    public static class cases_return extends TreeRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "cases"
    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:152:1: cases : ( casestatement )* defaultcase ;
    public final PhpRecognizer.cases_return cases() throws RecognitionException {
        PhpRecognizer.cases_return retval = new PhpRecognizer.cases_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        PhpRecognizer.casestatement_return casestatement102 = null;

        PhpRecognizer.defaultcase_return defaultcase103 = null;



        try {
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:153:5: ( ( casestatement )* defaultcase )
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:153:7: ( casestatement )* defaultcase
            {
            root_0 = (CommonTree)adaptor.nil();

            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:153:7: ( casestatement )*
            loop37:
            do {
                int alt37=2;
                int LA37_0 = input.LA(1);

                if ( (LA37_0==Case) ) {
                    alt37=1;
                }


                switch (alt37) {
            	case 1 :
            	    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:0:0: casestatement
            	    {
            	    _last = (CommonTree)input.LT(1);
            	    pushFollow(FOLLOW_casestatement_in_cases941);
            	    casestatement102=casestatement();

            	    state._fsp--;
            	    if (state.failed) return retval;
            	    if ( state.backtracking==0 ) 
            	    adaptor.addChild(root_0, casestatement102.getTree());

            	    if ( state.backtracking==0 ) {
            	    }
            	    }
            	    break;

            	default :
            	    break loop37;
                }
            } while (true);

            _last = (CommonTree)input.LT(1);
            pushFollow(FOLLOW_defaultcase_in_cases945);
            defaultcase103=defaultcase();

            state._fsp--;
            if (state.failed) return retval;
            if ( state.backtracking==0 ) 
            adaptor.addChild(root_0, defaultcase103.getTree());

            if ( state.backtracking==0 ) {
            }
            }

            if ( state.backtracking==0 ) {

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "cases"

    public static class casestatement_return extends TreeRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "casestatement"
    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:156:1: casestatement : ^( Case expression ( statement )* ) ;
    public final PhpRecognizer.casestatement_return casestatement() throws RecognitionException {
        PhpRecognizer.casestatement_return retval = new PhpRecognizer.casestatement_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree Case104=null;
        PhpRecognizer.expression_return expression105 = null;

        PhpRecognizer.statement_return statement106 = null;


        CommonTree Case104_tree=null;

        try {
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:157:5: ( ^( Case expression ( statement )* ) )
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:157:7: ^( Case expression ( statement )* )
            {
            root_0 = (CommonTree)adaptor.nil();

            _last = (CommonTree)input.LT(1);
            {
            CommonTree _save_last_1 = _last;
            CommonTree _first_1 = null;
            CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
            Case104=(CommonTree)match(input,Case,FOLLOW_Case_in_casestatement963); if (state.failed) return retval;
            if ( state.backtracking==0 ) {
            Case104_tree = (CommonTree)adaptor.dupNode(Case104);

            root_1 = (CommonTree)adaptor.becomeRoot(Case104_tree, root_1);
            }


            match(input, Token.DOWN, null); if (state.failed) return retval;
            _last = (CommonTree)input.LT(1);
            pushFollow(FOLLOW_expression_in_casestatement965);
            expression105=expression();

            state._fsp--;
            if (state.failed) return retval;
            if ( state.backtracking==0 ) 
            adaptor.addChild(root_1, expression105.getTree());
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:157:25: ( statement )*
            loop38:
            do {
                int alt38=2;
                int LA38_0 = input.LA(1);

                if ( (LA38_0==OpenSquareBrace||(LA38_0>=LogicalOr && LA38_0<=SuppressWarnings)||LA38_0==Dollar||(LA38_0>=Dot && LA38_0<=If)||(LA38_0>=For && LA38_0<=Switch)||(LA38_0>=Function && LA38_0<=Interface)||LA38_0==Block||LA38_0==Apply||(LA38_0>=Prefix && LA38_0<=IfExpression)||LA38_0==Cast||(LA38_0>=BodyString && LA38_0<=UnquotedString)||(LA38_0>=Integer && LA38_0<=EqualityOperator)||LA38_0==ShiftOperator||(LA38_0>=Array && LA38_0<=Boolean)) ) {
                    alt38=1;
                }


                switch (alt38) {
            	case 1 :
            	    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:0:0: statement
            	    {
            	    _last = (CommonTree)input.LT(1);
            	    pushFollow(FOLLOW_statement_in_casestatement967);
            	    statement106=statement();

            	    state._fsp--;
            	    if (state.failed) return retval;
            	    if ( state.backtracking==0 ) 
            	    adaptor.addChild(root_1, statement106.getTree());

            	    if ( state.backtracking==0 ) {
            	    }
            	    }
            	    break;

            	default :
            	    break loop38;
                }
            } while (true);


            match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
            }


            if ( state.backtracking==0 ) {
            }
            }

            if ( state.backtracking==0 ) {

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "casestatement"

    public static class defaultcase_return extends TreeRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "defaultcase"
    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:160:1: defaultcase : ^( Default ( statement )* ) ;
    public final PhpRecognizer.defaultcase_return defaultcase() throws RecognitionException {
        PhpRecognizer.defaultcase_return retval = new PhpRecognizer.defaultcase_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree Default107=null;
        PhpRecognizer.statement_return statement108 = null;


        CommonTree Default107_tree=null;

        try {
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:161:5: ( ^( Default ( statement )* ) )
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:161:7: ^( Default ( statement )* )
            {
            root_0 = (CommonTree)adaptor.nil();

            _last = (CommonTree)input.LT(1);
            {
            CommonTree _save_last_1 = _last;
            CommonTree _first_1 = null;
            CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
            Default107=(CommonTree)match(input,Default,FOLLOW_Default_in_defaultcase988); if (state.failed) return retval;
            if ( state.backtracking==0 ) {
            Default107_tree = (CommonTree)adaptor.dupNode(Default107);

            root_1 = (CommonTree)adaptor.becomeRoot(Default107_tree, root_1);
            }


            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); if (state.failed) return retval;
                // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:161:17: ( statement )*
                loop39:
                do {
                    int alt39=2;
                    int LA39_0 = input.LA(1);

                    if ( (LA39_0==OpenSquareBrace||(LA39_0>=LogicalOr && LA39_0<=SuppressWarnings)||LA39_0==Dollar||(LA39_0>=Dot && LA39_0<=If)||(LA39_0>=For && LA39_0<=Switch)||(LA39_0>=Function && LA39_0<=Interface)||LA39_0==Block||LA39_0==Apply||(LA39_0>=Prefix && LA39_0<=IfExpression)||LA39_0==Cast||(LA39_0>=BodyString && LA39_0<=UnquotedString)||(LA39_0>=Integer && LA39_0<=EqualityOperator)||LA39_0==ShiftOperator||(LA39_0>=Array && LA39_0<=Boolean)) ) {
                        alt39=1;
                    }


                    switch (alt39) {
                	case 1 :
                	    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:0:0: statement
                	    {
                	    _last = (CommonTree)input.LT(1);
                	    pushFollow(FOLLOW_statement_in_defaultcase990);
                	    statement108=statement();

                	    state._fsp--;
                	    if (state.failed) return retval;
                	    if ( state.backtracking==0 ) 
                	    adaptor.addChild(root_1, statement108.getTree());

                	    if ( state.backtracking==0 ) {
                	    }
                	    }
                	    break;

                	default :
                	    break loop39;
                    }
                } while (true);


                match(input, Token.UP, null); if (state.failed) return retval;
            }adaptor.addChild(root_0, root_1);_last = _save_last_1;
            }


            if ( state.backtracking==0 ) {
            }
            }

            if ( state.backtracking==0 ) {

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "defaultcase"

    public static class functionDefinition_return extends TreeRuleReturnScope {
        public PhpStatement value;
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "functionDefinition"
    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:164:1: functionDefinition returns [PhpStatement value] : ^( Function UnquotedString ^( Params ( paramDef )* ) ^( Block ( statement )* ) ) ;
    public final PhpRecognizer.functionDefinition_return functionDefinition() throws RecognitionException {
        PhpRecognizer.functionDefinition_return retval = new PhpRecognizer.functionDefinition_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree Function109=null;
        CommonTree UnquotedString110=null;
        CommonTree Params111=null;
        CommonTree Block113=null;
        PhpRecognizer.paramDef_return paramDef112 = null;

        PhpRecognizer.statement_return statement114 = null;


        CommonTree Function109_tree=null;
        CommonTree UnquotedString110_tree=null;
        CommonTree Params111_tree=null;
        CommonTree Block113_tree=null;

        try {
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:165:5: ( ^( Function UnquotedString ^( Params ( paramDef )* ) ^( Block ( statement )* ) ) )
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:165:7: ^( Function UnquotedString ^( Params ( paramDef )* ) ^( Block ( statement )* ) )
            {
            root_0 = (CommonTree)adaptor.nil();

            _last = (CommonTree)input.LT(1);
            {
            CommonTree _save_last_1 = _last;
            CommonTree _first_1 = null;
            CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
            Function109=(CommonTree)match(input,Function,FOLLOW_Function_in_functionDefinition1013); if (state.failed) return retval;
            if ( state.backtracking==0 ) {
            Function109_tree = (CommonTree)adaptor.dupNode(Function109);

            root_1 = (CommonTree)adaptor.becomeRoot(Function109_tree, root_1);
            }


            match(input, Token.DOWN, null); if (state.failed) return retval;
            _last = (CommonTree)input.LT(1);
            UnquotedString110=(CommonTree)match(input,UnquotedString,FOLLOW_UnquotedString_in_functionDefinition1015); if (state.failed) return retval;
            if ( state.backtracking==0 ) {
            UnquotedString110_tree = (CommonTree)adaptor.dupNode(UnquotedString110);

            adaptor.addChild(root_1, UnquotedString110_tree);
            }
            _last = (CommonTree)input.LT(1);
            {
            CommonTree _save_last_2 = _last;
            CommonTree _first_2 = null;
            CommonTree root_2 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
            Params111=(CommonTree)match(input,Params,FOLLOW_Params_in_functionDefinition1018); if (state.failed) return retval;
            if ( state.backtracking==0 ) {
            Params111_tree = (CommonTree)adaptor.dupNode(Params111);

            root_2 = (CommonTree)adaptor.becomeRoot(Params111_tree, root_2);
            }


            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); if (state.failed) return retval;
                // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:165:42: ( paramDef )*
                loop40:
                do {
                    int alt40=2;
                    int LA40_0 = input.LA(1);

                    if ( (LA40_0==Dollar||LA40_0==Ampersand||LA40_0==Equals) ) {
                        alt40=1;
                    }


                    switch (alt40) {
                	case 1 :
                	    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:0:0: paramDef
                	    {
                	    _last = (CommonTree)input.LT(1);
                	    pushFollow(FOLLOW_paramDef_in_functionDefinition1020);
                	    paramDef112=paramDef();

                	    state._fsp--;
                	    if (state.failed) return retval;
                	    if ( state.backtracking==0 ) 
                	    adaptor.addChild(root_2, paramDef112.getTree());

                	    if ( state.backtracking==0 ) {
                	    }
                	    }
                	    break;

                	default :
                	    break loop40;
                    }
                } while (true);


                match(input, Token.UP, null); if (state.failed) return retval;
            }adaptor.addChild(root_1, root_2);_last = _save_last_2;
            }

            _last = (CommonTree)input.LT(1);
            {
            CommonTree _save_last_2 = _last;
            CommonTree _first_2 = null;
            CommonTree root_2 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
            Block113=(CommonTree)match(input,Block,FOLLOW_Block_in_functionDefinition1025); if (state.failed) return retval;
            if ( state.backtracking==0 ) {
            Block113_tree = (CommonTree)adaptor.dupNode(Block113);

            root_2 = (CommonTree)adaptor.becomeRoot(Block113_tree, root_2);
            }


            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); if (state.failed) return retval;
                // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:165:61: ( statement )*
                loop41:
                do {
                    int alt41=2;
                    int LA41_0 = input.LA(1);

                    if ( (LA41_0==OpenSquareBrace||(LA41_0>=LogicalOr && LA41_0<=SuppressWarnings)||LA41_0==Dollar||(LA41_0>=Dot && LA41_0<=If)||(LA41_0>=For && LA41_0<=Switch)||(LA41_0>=Function && LA41_0<=Interface)||LA41_0==Block||LA41_0==Apply||(LA41_0>=Prefix && LA41_0<=IfExpression)||LA41_0==Cast||(LA41_0>=BodyString && LA41_0<=UnquotedString)||(LA41_0>=Integer && LA41_0<=EqualityOperator)||LA41_0==ShiftOperator||(LA41_0>=Array && LA41_0<=Boolean)) ) {
                        alt41=1;
                    }


                    switch (alt41) {
                	case 1 :
                	    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:0:0: statement
                	    {
                	    _last = (CommonTree)input.LT(1);
                	    pushFollow(FOLLOW_statement_in_functionDefinition1027);
                	    statement114=statement();

                	    state._fsp--;
                	    if (state.failed) return retval;
                	    if ( state.backtracking==0 ) 
                	    adaptor.addChild(root_2, statement114.getTree());

                	    if ( state.backtracking==0 ) {
                	    }
                	    }
                	    break;

                	default :
                	    break loop41;
                    }
                } while (true);


                match(input, Token.UP, null); if (state.failed) return retval;
            }adaptor.addChild(root_1, root_2);_last = _save_last_2;
            }


            match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
            }


            if ( state.backtracking==0 ) {
            }
            }

            if ( state.backtracking==0 ) {

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "functionDefinition"

    public static class paramDef_return extends TreeRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "paramDef"
    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:168:1: paramDef : ( ^( Equals paramName atom ) | paramName );
    public final PhpRecognizer.paramDef_return paramDef() throws RecognitionException {
        PhpRecognizer.paramDef_return retval = new PhpRecognizer.paramDef_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree Equals115=null;
        PhpRecognizer.paramName_return paramName116 = null;

        PhpRecognizer.atom_return atom117 = null;

        PhpRecognizer.paramName_return paramName118 = null;


        CommonTree Equals115_tree=null;

        try {
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:169:5: ( ^( Equals paramName atom ) | paramName )
            int alt42=2;
            int LA42_0 = input.LA(1);

            if ( (LA42_0==Equals) ) {
                alt42=1;
            }
            else if ( (LA42_0==Dollar||LA42_0==Ampersand) ) {
                alt42=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return retval;}
                NoViableAltException nvae =
                    new NoViableAltException("", 42, 0, input);

                throw nvae;
            }
            switch (alt42) {
                case 1 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:169:7: ^( Equals paramName atom )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Equals115=(CommonTree)match(input,Equals,FOLLOW_Equals_in_paramDef1052); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Equals115_tree = (CommonTree)adaptor.dupNode(Equals115);

                    root_1 = (CommonTree)adaptor.becomeRoot(Equals115_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_paramName_in_paramDef1054);
                    paramName116=paramName();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, paramName116.getTree());
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_atom_in_paramDef1056);
                    atom117=atom();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, atom117.getTree());

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 2 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:170:7: paramName
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_paramName_in_paramDef1066);
                    paramName118=paramName();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_0, paramName118.getTree());

                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;

            }
            if ( state.backtracking==0 ) {

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "paramDef"

    public static class paramName_return extends TreeRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "paramName"
    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:173:1: paramName : ( ^( Dollar UnquotedString ) | ^( Ampersand ^( Dollar UnquotedString ) ) );
    public final PhpRecognizer.paramName_return paramName() throws RecognitionException {
        PhpRecognizer.paramName_return retval = new PhpRecognizer.paramName_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree Dollar119=null;
        CommonTree UnquotedString120=null;
        CommonTree Ampersand121=null;
        CommonTree Dollar122=null;
        CommonTree UnquotedString123=null;

        CommonTree Dollar119_tree=null;
        CommonTree UnquotedString120_tree=null;
        CommonTree Ampersand121_tree=null;
        CommonTree Dollar122_tree=null;
        CommonTree UnquotedString123_tree=null;

        try {
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:174:5: ( ^( Dollar UnquotedString ) | ^( Ampersand ^( Dollar UnquotedString ) ) )
            int alt43=2;
            int LA43_0 = input.LA(1);

            if ( (LA43_0==Dollar) ) {
                alt43=1;
            }
            else if ( (LA43_0==Ampersand) ) {
                alt43=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return retval;}
                NoViableAltException nvae =
                    new NoViableAltException("", 43, 0, input);

                throw nvae;
            }
            switch (alt43) {
                case 1 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:174:7: ^( Dollar UnquotedString )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Dollar119=(CommonTree)match(input,Dollar,FOLLOW_Dollar_in_paramName1084); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Dollar119_tree = (CommonTree)adaptor.dupNode(Dollar119);

                    root_1 = (CommonTree)adaptor.becomeRoot(Dollar119_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    UnquotedString120=(CommonTree)match(input,UnquotedString,FOLLOW_UnquotedString_in_paramName1086); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    UnquotedString120_tree = (CommonTree)adaptor.dupNode(UnquotedString120);

                    adaptor.addChild(root_1, UnquotedString120_tree);
                    }

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 2 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:175:7: ^( Ampersand ^( Dollar UnquotedString ) )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Ampersand121=(CommonTree)match(input,Ampersand,FOLLOW_Ampersand_in_paramName1096); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Ampersand121_tree = (CommonTree)adaptor.dupNode(Ampersand121);

                    root_1 = (CommonTree)adaptor.becomeRoot(Ampersand121_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_2 = _last;
                    CommonTree _first_2 = null;
                    CommonTree root_2 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Dollar122=(CommonTree)match(input,Dollar,FOLLOW_Dollar_in_paramName1099); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Dollar122_tree = (CommonTree)adaptor.dupNode(Dollar122);

                    root_2 = (CommonTree)adaptor.becomeRoot(Dollar122_tree, root_2);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    UnquotedString123=(CommonTree)match(input,UnquotedString,FOLLOW_UnquotedString_in_paramName1101); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    UnquotedString123_tree = (CommonTree)adaptor.dupNode(UnquotedString123);

                    adaptor.addChild(root_2, UnquotedString123_tree);
                    }

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_1, root_2);_last = _save_last_2;
                    }


                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;

            }
            if ( state.backtracking==0 ) {

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "paramName"

    public static class expression_return extends TreeRuleReturnScope {
        public PhpExpression value;
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "expression"
    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:178:1: expression returns [PhpExpression value] : ( ^( Or expression expression ) | ^( Xor expression expression ) | ^( And expression expression ) | ^( Equals expression expression ) | ^( AsignmentOperator expression expression ) | ^( IfExpression expression expression expression ) | ^( LogicalOr expression expression ) | ^( LogicalAnd expression expression ) | ^( Pipe expression expression ) | ^( Ampersand expression expression ) | ^( EqualityOperator expression expression ) | ^( ShiftOperator expression expression ) | ^( Plus expression expression ) | ^( Minus expression expression ) | ^( Dot expression expression ) | ^( Asterisk expression expression ) | ^( Forwardslash expression expression ) | ^( Percent expression expression ) | ^( Bang expression ) | ^( Instanceof expression expression ) | ^( Tilde expression ) | ^( Minus expression ) | ^( SuppressWarnings expression ) | ^( Cast PrimitiveType expression ) | ^( Prefix IncrementOperator name ) | ^( Postfix IncrementOperator name ) | ^( New nameOrFunctionCall ) | ^( Clone name ) | atomOrReference );
    public final PhpRecognizer.expression_return expression() throws RecognitionException {
        PhpRecognizer.expression_return retval = new PhpRecognizer.expression_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree Or124=null;
        CommonTree Xor127=null;
        CommonTree And130=null;
        CommonTree Equals133=null;
        CommonTree AsignmentOperator136=null;
        CommonTree IfExpression139=null;
        CommonTree LogicalOr143=null;
        CommonTree LogicalAnd146=null;
        CommonTree Pipe149=null;
        CommonTree Ampersand152=null;
        CommonTree EqualityOperator155=null;
        CommonTree ShiftOperator158=null;
        CommonTree Plus161=null;
        CommonTree Minus164=null;
        CommonTree Dot167=null;
        CommonTree Asterisk170=null;
        CommonTree Forwardslash173=null;
        CommonTree Percent176=null;
        CommonTree Bang179=null;
        CommonTree Instanceof181=null;
        CommonTree Tilde184=null;
        CommonTree Minus186=null;
        CommonTree SuppressWarnings188=null;
        CommonTree Cast190=null;
        CommonTree PrimitiveType191=null;
        CommonTree Prefix193=null;
        CommonTree IncrementOperator194=null;
        CommonTree Postfix196=null;
        CommonTree IncrementOperator197=null;
        CommonTree New199=null;
        CommonTree Clone201=null;
        PhpRecognizer.expression_return expression125 = null;

        PhpRecognizer.expression_return expression126 = null;

        PhpRecognizer.expression_return expression128 = null;

        PhpRecognizer.expression_return expression129 = null;

        PhpRecognizer.expression_return expression131 = null;

        PhpRecognizer.expression_return expression132 = null;

        PhpRecognizer.expression_return expression134 = null;

        PhpRecognizer.expression_return expression135 = null;

        PhpRecognizer.expression_return expression137 = null;

        PhpRecognizer.expression_return expression138 = null;

        PhpRecognizer.expression_return expression140 = null;

        PhpRecognizer.expression_return expression141 = null;

        PhpRecognizer.expression_return expression142 = null;

        PhpRecognizer.expression_return expression144 = null;

        PhpRecognizer.expression_return expression145 = null;

        PhpRecognizer.expression_return expression147 = null;

        PhpRecognizer.expression_return expression148 = null;

        PhpRecognizer.expression_return expression150 = null;

        PhpRecognizer.expression_return expression151 = null;

        PhpRecognizer.expression_return expression153 = null;

        PhpRecognizer.expression_return expression154 = null;

        PhpRecognizer.expression_return expression156 = null;

        PhpRecognizer.expression_return expression157 = null;

        PhpRecognizer.expression_return expression159 = null;

        PhpRecognizer.expression_return expression160 = null;

        PhpRecognizer.expression_return expression162 = null;

        PhpRecognizer.expression_return expression163 = null;

        PhpRecognizer.expression_return expression165 = null;

        PhpRecognizer.expression_return expression166 = null;

        PhpRecognizer.expression_return expression168 = null;

        PhpRecognizer.expression_return expression169 = null;

        PhpRecognizer.expression_return expression171 = null;

        PhpRecognizer.expression_return expression172 = null;

        PhpRecognizer.expression_return expression174 = null;

        PhpRecognizer.expression_return expression175 = null;

        PhpRecognizer.expression_return expression177 = null;

        PhpRecognizer.expression_return expression178 = null;

        PhpRecognizer.expression_return expression180 = null;

        PhpRecognizer.expression_return expression182 = null;

        PhpRecognizer.expression_return expression183 = null;

        PhpRecognizer.expression_return expression185 = null;

        PhpRecognizer.expression_return expression187 = null;

        PhpRecognizer.expression_return expression189 = null;

        PhpRecognizer.expression_return expression192 = null;

        PhpRecognizer.name_return name195 = null;

        PhpRecognizer.name_return name198 = null;

        PhpRecognizer.nameOrFunctionCall_return nameOrFunctionCall200 = null;

        PhpRecognizer.name_return name202 = null;

        PhpRecognizer.atomOrReference_return atomOrReference203 = null;


        CommonTree Or124_tree=null;
        CommonTree Xor127_tree=null;
        CommonTree And130_tree=null;
        CommonTree Equals133_tree=null;
        CommonTree AsignmentOperator136_tree=null;
        CommonTree IfExpression139_tree=null;
        CommonTree LogicalOr143_tree=null;
        CommonTree LogicalAnd146_tree=null;
        CommonTree Pipe149_tree=null;
        CommonTree Ampersand152_tree=null;
        CommonTree EqualityOperator155_tree=null;
        CommonTree ShiftOperator158_tree=null;
        CommonTree Plus161_tree=null;
        CommonTree Minus164_tree=null;
        CommonTree Dot167_tree=null;
        CommonTree Asterisk170_tree=null;
        CommonTree Forwardslash173_tree=null;
        CommonTree Percent176_tree=null;
        CommonTree Bang179_tree=null;
        CommonTree Instanceof181_tree=null;
        CommonTree Tilde184_tree=null;
        CommonTree Minus186_tree=null;
        CommonTree SuppressWarnings188_tree=null;
        CommonTree Cast190_tree=null;
        CommonTree PrimitiveType191_tree=null;
        CommonTree Prefix193_tree=null;
        CommonTree IncrementOperator194_tree=null;
        CommonTree Postfix196_tree=null;
        CommonTree IncrementOperator197_tree=null;
        CommonTree New199_tree=null;
        CommonTree Clone201_tree=null;

        try {
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:179:5: ( ^( Or expression expression ) | ^( Xor expression expression ) | ^( And expression expression ) | ^( Equals expression expression ) | ^( AsignmentOperator expression expression ) | ^( IfExpression expression expression expression ) | ^( LogicalOr expression expression ) | ^( LogicalAnd expression expression ) | ^( Pipe expression expression ) | ^( Ampersand expression expression ) | ^( EqualityOperator expression expression ) | ^( ShiftOperator expression expression ) | ^( Plus expression expression ) | ^( Minus expression expression ) | ^( Dot expression expression ) | ^( Asterisk expression expression ) | ^( Forwardslash expression expression ) | ^( Percent expression expression ) | ^( Bang expression ) | ^( Instanceof expression expression ) | ^( Tilde expression ) | ^( Minus expression ) | ^( SuppressWarnings expression ) | ^( Cast PrimitiveType expression ) | ^( Prefix IncrementOperator name ) | ^( Postfix IncrementOperator name ) | ^( New nameOrFunctionCall ) | ^( Clone name ) | atomOrReference )
            int alt44=29;
            alt44 = dfa44.predict(input);
            switch (alt44) {
                case 1 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:179:7: ^( Or expression expression )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Or124=(CommonTree)match(input,Or,FOLLOW_Or_in_expression1128); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Or124_tree = (CommonTree)adaptor.dupNode(Or124);

                    root_1 = (CommonTree)adaptor.becomeRoot(Or124_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1130);
                    expression125=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression125.getTree());
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1132);
                    expression126=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression126.getTree());

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 2 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:180:7: ^( Xor expression expression )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Xor127=(CommonTree)match(input,Xor,FOLLOW_Xor_in_expression1142); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Xor127_tree = (CommonTree)adaptor.dupNode(Xor127);

                    root_1 = (CommonTree)adaptor.becomeRoot(Xor127_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1144);
                    expression128=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression128.getTree());
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1146);
                    expression129=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression129.getTree());

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 3 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:181:7: ^( And expression expression )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    And130=(CommonTree)match(input,And,FOLLOW_And_in_expression1156); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    And130_tree = (CommonTree)adaptor.dupNode(And130);

                    root_1 = (CommonTree)adaptor.becomeRoot(And130_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1158);
                    expression131=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression131.getTree());
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1160);
                    expression132=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression132.getTree());

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 4 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:182:7: ^( Equals expression expression )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Equals133=(CommonTree)match(input,Equals,FOLLOW_Equals_in_expression1170); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Equals133_tree = (CommonTree)adaptor.dupNode(Equals133);

                    root_1 = (CommonTree)adaptor.becomeRoot(Equals133_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1172);
                    expression134=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression134.getTree());
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1174);
                    expression135=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression135.getTree());

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 5 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:183:7: ^( AsignmentOperator expression expression )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    AsignmentOperator136=(CommonTree)match(input,AsignmentOperator,FOLLOW_AsignmentOperator_in_expression1184); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    AsignmentOperator136_tree = (CommonTree)adaptor.dupNode(AsignmentOperator136);

                    root_1 = (CommonTree)adaptor.becomeRoot(AsignmentOperator136_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1186);
                    expression137=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression137.getTree());
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1188);
                    expression138=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression138.getTree());

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 6 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:184:7: ^( IfExpression expression expression expression )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    IfExpression139=(CommonTree)match(input,IfExpression,FOLLOW_IfExpression_in_expression1198); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    IfExpression139_tree = (CommonTree)adaptor.dupNode(IfExpression139);

                    root_1 = (CommonTree)adaptor.becomeRoot(IfExpression139_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1200);
                    expression140=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression140.getTree());
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1202);
                    expression141=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression141.getTree());
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1204);
                    expression142=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression142.getTree());

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 7 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:185:7: ^( LogicalOr expression expression )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    LogicalOr143=(CommonTree)match(input,LogicalOr,FOLLOW_LogicalOr_in_expression1214); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    LogicalOr143_tree = (CommonTree)adaptor.dupNode(LogicalOr143);

                    root_1 = (CommonTree)adaptor.becomeRoot(LogicalOr143_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1216);
                    expression144=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression144.getTree());
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1218);
                    expression145=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression145.getTree());

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 8 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:186:7: ^( LogicalAnd expression expression )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    LogicalAnd146=(CommonTree)match(input,LogicalAnd,FOLLOW_LogicalAnd_in_expression1228); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    LogicalAnd146_tree = (CommonTree)adaptor.dupNode(LogicalAnd146);

                    root_1 = (CommonTree)adaptor.becomeRoot(LogicalAnd146_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1230);
                    expression147=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression147.getTree());
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1232);
                    expression148=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression148.getTree());

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 9 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:187:7: ^( Pipe expression expression )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Pipe149=(CommonTree)match(input,Pipe,FOLLOW_Pipe_in_expression1242); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Pipe149_tree = (CommonTree)adaptor.dupNode(Pipe149);

                    root_1 = (CommonTree)adaptor.becomeRoot(Pipe149_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1244);
                    expression150=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression150.getTree());
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1246);
                    expression151=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression151.getTree());

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 10 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:188:7: ^( Ampersand expression expression )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Ampersand152=(CommonTree)match(input,Ampersand,FOLLOW_Ampersand_in_expression1256); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Ampersand152_tree = (CommonTree)adaptor.dupNode(Ampersand152);

                    root_1 = (CommonTree)adaptor.becomeRoot(Ampersand152_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1258);
                    expression153=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression153.getTree());
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1260);
                    expression154=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression154.getTree());

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 11 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:189:7: ^( EqualityOperator expression expression )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    EqualityOperator155=(CommonTree)match(input,EqualityOperator,FOLLOW_EqualityOperator_in_expression1270); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    EqualityOperator155_tree = (CommonTree)adaptor.dupNode(EqualityOperator155);

                    root_1 = (CommonTree)adaptor.becomeRoot(EqualityOperator155_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1272);
                    expression156=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression156.getTree());
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1274);
                    expression157=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression157.getTree());

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 12 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:190:7: ^( ShiftOperator expression expression )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    ShiftOperator158=(CommonTree)match(input,ShiftOperator,FOLLOW_ShiftOperator_in_expression1284); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    ShiftOperator158_tree = (CommonTree)adaptor.dupNode(ShiftOperator158);

                    root_1 = (CommonTree)adaptor.becomeRoot(ShiftOperator158_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1286);
                    expression159=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression159.getTree());
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1288);
                    expression160=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression160.getTree());

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 13 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:191:7: ^( Plus expression expression )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Plus161=(CommonTree)match(input,Plus,FOLLOW_Plus_in_expression1298); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Plus161_tree = (CommonTree)adaptor.dupNode(Plus161);

                    root_1 = (CommonTree)adaptor.becomeRoot(Plus161_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1300);
                    expression162=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression162.getTree());
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1302);
                    expression163=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression163.getTree());

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 14 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:192:7: ^( Minus expression expression )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Minus164=(CommonTree)match(input,Minus,FOLLOW_Minus_in_expression1312); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Minus164_tree = (CommonTree)adaptor.dupNode(Minus164);

                    root_1 = (CommonTree)adaptor.becomeRoot(Minus164_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1314);
                    expression165=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression165.getTree());
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1316);
                    expression166=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression166.getTree());

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 15 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:193:7: ^( Dot expression expression )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Dot167=(CommonTree)match(input,Dot,FOLLOW_Dot_in_expression1326); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Dot167_tree = (CommonTree)adaptor.dupNode(Dot167);

                    root_1 = (CommonTree)adaptor.becomeRoot(Dot167_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1328);
                    expression168=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression168.getTree());
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1330);
                    expression169=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression169.getTree());

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 16 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:194:7: ^( Asterisk expression expression )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Asterisk170=(CommonTree)match(input,Asterisk,FOLLOW_Asterisk_in_expression1340); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Asterisk170_tree = (CommonTree)adaptor.dupNode(Asterisk170);

                    root_1 = (CommonTree)adaptor.becomeRoot(Asterisk170_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1342);
                    expression171=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression171.getTree());
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1344);
                    expression172=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression172.getTree());

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 17 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:195:7: ^( Forwardslash expression expression )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Forwardslash173=(CommonTree)match(input,Forwardslash,FOLLOW_Forwardslash_in_expression1354); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Forwardslash173_tree = (CommonTree)adaptor.dupNode(Forwardslash173);

                    root_1 = (CommonTree)adaptor.becomeRoot(Forwardslash173_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1356);
                    expression174=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression174.getTree());
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1358);
                    expression175=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression175.getTree());

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 18 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:196:7: ^( Percent expression expression )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Percent176=(CommonTree)match(input,Percent,FOLLOW_Percent_in_expression1368); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Percent176_tree = (CommonTree)adaptor.dupNode(Percent176);

                    root_1 = (CommonTree)adaptor.becomeRoot(Percent176_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1370);
                    expression177=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression177.getTree());
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1372);
                    expression178=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression178.getTree());

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 19 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:197:7: ^( Bang expression )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Bang179=(CommonTree)match(input,Bang,FOLLOW_Bang_in_expression1382); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Bang179_tree = (CommonTree)adaptor.dupNode(Bang179);

                    root_1 = (CommonTree)adaptor.becomeRoot(Bang179_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1384);
                    expression180=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression180.getTree());

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 20 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:198:7: ^( Instanceof expression expression )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Instanceof181=(CommonTree)match(input,Instanceof,FOLLOW_Instanceof_in_expression1394); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Instanceof181_tree = (CommonTree)adaptor.dupNode(Instanceof181);

                    root_1 = (CommonTree)adaptor.becomeRoot(Instanceof181_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1396);
                    expression182=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression182.getTree());
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1398);
                    expression183=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression183.getTree());

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 21 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:199:7: ^( Tilde expression )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Tilde184=(CommonTree)match(input,Tilde,FOLLOW_Tilde_in_expression1408); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Tilde184_tree = (CommonTree)adaptor.dupNode(Tilde184);

                    root_1 = (CommonTree)adaptor.becomeRoot(Tilde184_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1410);
                    expression185=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression185.getTree());

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 22 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:200:7: ^( Minus expression )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Minus186=(CommonTree)match(input,Minus,FOLLOW_Minus_in_expression1420); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Minus186_tree = (CommonTree)adaptor.dupNode(Minus186);

                    root_1 = (CommonTree)adaptor.becomeRoot(Minus186_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1422);
                    expression187=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression187.getTree());

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 23 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:201:7: ^( SuppressWarnings expression )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    SuppressWarnings188=(CommonTree)match(input,SuppressWarnings,FOLLOW_SuppressWarnings_in_expression1433); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    SuppressWarnings188_tree = (CommonTree)adaptor.dupNode(SuppressWarnings188);

                    root_1 = (CommonTree)adaptor.becomeRoot(SuppressWarnings188_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1435);
                    expression189=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression189.getTree());

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 24 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:202:7: ^( Cast PrimitiveType expression )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Cast190=(CommonTree)match(input,Cast,FOLLOW_Cast_in_expression1445); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Cast190_tree = (CommonTree)adaptor.dupNode(Cast190);

                    root_1 = (CommonTree)adaptor.becomeRoot(Cast190_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    PrimitiveType191=(CommonTree)match(input,PrimitiveType,FOLLOW_PrimitiveType_in_expression1447); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    PrimitiveType191_tree = (CommonTree)adaptor.dupNode(PrimitiveType191);

                    adaptor.addChild(root_1, PrimitiveType191_tree);
                    }
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_expression1449);
                    expression192=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression192.getTree());

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 25 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:203:7: ^( Prefix IncrementOperator name )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Prefix193=(CommonTree)match(input,Prefix,FOLLOW_Prefix_in_expression1459); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Prefix193_tree = (CommonTree)adaptor.dupNode(Prefix193);

                    root_1 = (CommonTree)adaptor.becomeRoot(Prefix193_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    IncrementOperator194=(CommonTree)match(input,IncrementOperator,FOLLOW_IncrementOperator_in_expression1461); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    IncrementOperator194_tree = (CommonTree)adaptor.dupNode(IncrementOperator194);

                    adaptor.addChild(root_1, IncrementOperator194_tree);
                    }
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_name_in_expression1463);
                    name195=name();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, name195.getTree());

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 26 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:204:7: ^( Postfix IncrementOperator name )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Postfix196=(CommonTree)match(input,Postfix,FOLLOW_Postfix_in_expression1473); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Postfix196_tree = (CommonTree)adaptor.dupNode(Postfix196);

                    root_1 = (CommonTree)adaptor.becomeRoot(Postfix196_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    IncrementOperator197=(CommonTree)match(input,IncrementOperator,FOLLOW_IncrementOperator_in_expression1475); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    IncrementOperator197_tree = (CommonTree)adaptor.dupNode(IncrementOperator197);

                    adaptor.addChild(root_1, IncrementOperator197_tree);
                    }
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_name_in_expression1477);
                    name198=name();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, name198.getTree());

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 27 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:205:7: ^( New nameOrFunctionCall )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    New199=(CommonTree)match(input,New,FOLLOW_New_in_expression1487); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    New199_tree = (CommonTree)adaptor.dupNode(New199);

                    root_1 = (CommonTree)adaptor.becomeRoot(New199_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_nameOrFunctionCall_in_expression1489);
                    nameOrFunctionCall200=nameOrFunctionCall();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, nameOrFunctionCall200.getTree());

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 28 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:206:7: ^( Clone name )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Clone201=(CommonTree)match(input,Clone,FOLLOW_Clone_in_expression1499); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Clone201_tree = (CommonTree)adaptor.dupNode(Clone201);

                    root_1 = (CommonTree)adaptor.becomeRoot(Clone201_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_name_in_expression1501);
                    name202=name();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, name202.getTree());

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 29 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:207:7: atomOrReference
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_atomOrReference_in_expression1510);
                    atomOrReference203=atomOrReference();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_0, atomOrReference203.getTree());

                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;

            }
            if ( state.backtracking==0 ) {

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "expression"

    public static class atomOrReference_return extends TreeRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "atomOrReference"
    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:211:1: atomOrReference : ( atom | reference );
    public final PhpRecognizer.atomOrReference_return atomOrReference() throws RecognitionException {
        PhpRecognizer.atomOrReference_return retval = new PhpRecognizer.atomOrReference_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        PhpRecognizer.atom_return atom204 = null;

        PhpRecognizer.reference_return reference205 = null;



        try {
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:212:5: ( atom | reference )
            int alt45=2;
            int LA45_0 = input.LA(1);

            if ( (LA45_0==Integer||(LA45_0>=Array && LA45_0<=Boolean)) ) {
                alt45=1;
            }
            else if ( (LA45_0==OpenSquareBrace||(LA45_0>=ClassMember && LA45_0<=InstanceMember)||LA45_0==Dollar||LA45_0==Ampersand||LA45_0==Apply||LA45_0==UnquotedString) ) {
                alt45=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return retval;}
                NoViableAltException nvae =
                    new NoViableAltException("", 45, 0, input);

                throw nvae;
            }
            switch (alt45) {
                case 1 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:212:7: atom
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_atom_in_atomOrReference1528);
                    atom204=atom();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_0, atom204.getTree());

                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 2 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:213:7: reference
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_reference_in_atomOrReference1536);
                    reference205=reference();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_0, reference205.getTree());

                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;

            }
            if ( state.backtracking==0 ) {

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "atomOrReference"

    public static class arrayDeclaration_return extends TreeRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "arrayDeclaration"
    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:216:1: arrayDeclaration : ^( Array ( arrayEntry )* ) ;
    public final PhpRecognizer.arrayDeclaration_return arrayDeclaration() throws RecognitionException {
        PhpRecognizer.arrayDeclaration_return retval = new PhpRecognizer.arrayDeclaration_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree Array206=null;
        PhpRecognizer.arrayEntry_return arrayEntry207 = null;


        CommonTree Array206_tree=null;

        try {
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:217:5: ( ^( Array ( arrayEntry )* ) )
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:217:7: ^( Array ( arrayEntry )* )
            {
            root_0 = (CommonTree)adaptor.nil();

            _last = (CommonTree)input.LT(1);
            {
            CommonTree _save_last_1 = _last;
            CommonTree _first_1 = null;
            CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
            Array206=(CommonTree)match(input,Array,FOLLOW_Array_in_arrayDeclaration1554); if (state.failed) return retval;
            if ( state.backtracking==0 ) {
            Array206_tree = (CommonTree)adaptor.dupNode(Array206);

            root_1 = (CommonTree)adaptor.becomeRoot(Array206_tree, root_1);
            }


            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); if (state.failed) return retval;
                // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:217:15: ( arrayEntry )*
                loop46:
                do {
                    int alt46=2;
                    int LA46_0 = input.LA(1);

                    if ( (LA46_0==OpenSquareBrace||(LA46_0>=ArrayAssign && LA46_0<=SuppressWarnings)||LA46_0==Dollar||(LA46_0>=Dot && LA46_0<=Clone)||(LA46_0>=And && LA46_0<=Instanceof)||LA46_0==Apply||(LA46_0>=Prefix && LA46_0<=IfExpression)||LA46_0==Cast||LA46_0==UnquotedString||LA46_0==Integer||(LA46_0>=AsignmentOperator && LA46_0<=EqualityOperator)||LA46_0==ShiftOperator||(LA46_0>=Array && LA46_0<=Boolean)) ) {
                        alt46=1;
                    }


                    switch (alt46) {
                	case 1 :
                	    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:0:0: arrayEntry
                	    {
                	    _last = (CommonTree)input.LT(1);
                	    pushFollow(FOLLOW_arrayEntry_in_arrayDeclaration1556);
                	    arrayEntry207=arrayEntry();

                	    state._fsp--;
                	    if (state.failed) return retval;
                	    if ( state.backtracking==0 ) 
                	    adaptor.addChild(root_1, arrayEntry207.getTree());

                	    if ( state.backtracking==0 ) {
                	    }
                	    }
                	    break;

                	default :
                	    break loop46;
                    }
                } while (true);


                match(input, Token.UP, null); if (state.failed) return retval;
            }adaptor.addChild(root_0, root_1);_last = _save_last_1;
            }


            if ( state.backtracking==0 ) {
            }
            }

            if ( state.backtracking==0 ) {

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "arrayDeclaration"

    public static class arrayEntry_return extends TreeRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "arrayEntry"
    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:220:1: arrayEntry : ( keyValuePair | expression ) ;
    public final PhpRecognizer.arrayEntry_return arrayEntry() throws RecognitionException {
        PhpRecognizer.arrayEntry_return retval = new PhpRecognizer.arrayEntry_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        PhpRecognizer.keyValuePair_return keyValuePair208 = null;

        PhpRecognizer.expression_return expression209 = null;



        try {
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:221:5: ( ( keyValuePair | expression ) )
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:221:7: ( keyValuePair | expression )
            {
            root_0 = (CommonTree)adaptor.nil();

            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:221:7: ( keyValuePair | expression )
            int alt47=2;
            int LA47_0 = input.LA(1);

            if ( (LA47_0==ArrayAssign) ) {
                alt47=1;
            }
            else if ( (LA47_0==OpenSquareBrace||(LA47_0>=LogicalOr && LA47_0<=SuppressWarnings)||LA47_0==Dollar||(LA47_0>=Dot && LA47_0<=Clone)||(LA47_0>=And && LA47_0<=Instanceof)||LA47_0==Apply||(LA47_0>=Prefix && LA47_0<=IfExpression)||LA47_0==Cast||LA47_0==UnquotedString||LA47_0==Integer||(LA47_0>=AsignmentOperator && LA47_0<=EqualityOperator)||LA47_0==ShiftOperator||(LA47_0>=Array && LA47_0<=Boolean)) ) {
                alt47=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return retval;}
                NoViableAltException nvae =
                    new NoViableAltException("", 47, 0, input);

                throw nvae;
            }
            switch (alt47) {
                case 1 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:221:8: keyValuePair
                    {
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_keyValuePair_in_arrayEntry1576);
                    keyValuePair208=keyValuePair();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_0, keyValuePair208.getTree());

                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 2 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:221:23: expression
                    {
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_arrayEntry1580);
                    expression209=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_0, expression209.getTree());

                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;

            }


            if ( state.backtracking==0 ) {
            }
            }

            if ( state.backtracking==0 ) {

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "arrayEntry"

    public static class keyValuePair_return extends TreeRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "keyValuePair"
    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:224:1: keyValuePair : ^( ArrayAssign ( expression )+ ) ;
    public final PhpRecognizer.keyValuePair_return keyValuePair() throws RecognitionException {
        PhpRecognizer.keyValuePair_return retval = new PhpRecognizer.keyValuePair_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree ArrayAssign210=null;
        PhpRecognizer.expression_return expression211 = null;


        CommonTree ArrayAssign210_tree=null;

        try {
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:225:5: ( ^( ArrayAssign ( expression )+ ) )
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:225:7: ^( ArrayAssign ( expression )+ )
            {
            root_0 = (CommonTree)adaptor.nil();

            _last = (CommonTree)input.LT(1);
            {
            CommonTree _save_last_1 = _last;
            CommonTree _first_1 = null;
            CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
            ArrayAssign210=(CommonTree)match(input,ArrayAssign,FOLLOW_ArrayAssign_in_keyValuePair1599); if (state.failed) return retval;
            if ( state.backtracking==0 ) {
            ArrayAssign210_tree = (CommonTree)adaptor.dupNode(ArrayAssign210);

            root_1 = (CommonTree)adaptor.becomeRoot(ArrayAssign210_tree, root_1);
            }


            match(input, Token.DOWN, null); if (state.failed) return retval;
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:225:21: ( expression )+
            int cnt48=0;
            loop48:
            do {
                int alt48=2;
                int LA48_0 = input.LA(1);

                if ( (LA48_0==OpenSquareBrace||(LA48_0>=LogicalOr && LA48_0<=SuppressWarnings)||LA48_0==Dollar||(LA48_0>=Dot && LA48_0<=Clone)||(LA48_0>=And && LA48_0<=Instanceof)||LA48_0==Apply||(LA48_0>=Prefix && LA48_0<=IfExpression)||LA48_0==Cast||LA48_0==UnquotedString||LA48_0==Integer||(LA48_0>=AsignmentOperator && LA48_0<=EqualityOperator)||LA48_0==ShiftOperator||(LA48_0>=Array && LA48_0<=Boolean)) ) {
                    alt48=1;
                }


                switch (alt48) {
            	case 1 :
            	    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:0:0: expression
            	    {
            	    _last = (CommonTree)input.LT(1);
            	    pushFollow(FOLLOW_expression_in_keyValuePair1601);
            	    expression211=expression();

            	    state._fsp--;
            	    if (state.failed) return retval;
            	    if ( state.backtracking==0 ) 
            	    adaptor.addChild(root_1, expression211.getTree());

            	    if ( state.backtracking==0 ) {
            	    }
            	    }
            	    break;

            	default :
            	    if ( cnt48 >= 1 ) break loop48;
            	    if (state.backtracking>0) {state.failed=true; return retval;}
                        EarlyExitException eee =
                            new EarlyExitException(48, input);
                        throw eee;
                }
                cnt48++;
            } while (true);


            match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
            }


            if ( state.backtracking==0 ) {
            }
            }

            if ( state.backtracking==0 ) {

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "keyValuePair"

    public static class atom_return extends TreeRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "atom"
    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:228:1: atom : ( SingleQuotedString | DoubleQuotedString | HereDoc | Integer | Real | Boolean | arrayDeclaration );
    public final PhpRecognizer.atom_return atom() throws RecognitionException {
        PhpRecognizer.atom_return retval = new PhpRecognizer.atom_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree SingleQuotedString212=null;
        CommonTree DoubleQuotedString213=null;
        CommonTree HereDoc214=null;
        CommonTree Integer215=null;
        CommonTree Real216=null;
        CommonTree Boolean217=null;
        PhpRecognizer.arrayDeclaration_return arrayDeclaration218 = null;


        CommonTree SingleQuotedString212_tree=null;
        CommonTree DoubleQuotedString213_tree=null;
        CommonTree HereDoc214_tree=null;
        CommonTree Integer215_tree=null;
        CommonTree Real216_tree=null;
        CommonTree Boolean217_tree=null;

        try {
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:228:5: ( SingleQuotedString | DoubleQuotedString | HereDoc | Integer | Real | Boolean | arrayDeclaration )
            int alt49=7;
            switch ( input.LA(1) ) {
            case SingleQuotedString:
                {
                alt49=1;
                }
                break;
            case DoubleQuotedString:
                {
                alt49=2;
                }
                break;
            case HereDoc:
                {
                alt49=3;
                }
                break;
            case Integer:
                {
                alt49=4;
                }
                break;
            case Real:
                {
                alt49=5;
                }
                break;
            case Boolean:
                {
                alt49=6;
                }
                break;
            case Array:
                {
                alt49=7;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return retval;}
                NoViableAltException nvae =
                    new NoViableAltException("", 49, 0, input);

                throw nvae;
            }

            switch (alt49) {
                case 1 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:228:7: SingleQuotedString
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    SingleQuotedString212=(CommonTree)match(input,SingleQuotedString,FOLLOW_SingleQuotedString_in_atom1615); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    SingleQuotedString212_tree = (CommonTree)adaptor.dupNode(SingleQuotedString212);

                    adaptor.addChild(root_0, SingleQuotedString212_tree);
                    }

                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 2 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:228:28: DoubleQuotedString
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    DoubleQuotedString213=(CommonTree)match(input,DoubleQuotedString,FOLLOW_DoubleQuotedString_in_atom1619); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    DoubleQuotedString213_tree = (CommonTree)adaptor.dupNode(DoubleQuotedString213);

                    adaptor.addChild(root_0, DoubleQuotedString213_tree);
                    }

                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 3 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:228:49: HereDoc
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    HereDoc214=(CommonTree)match(input,HereDoc,FOLLOW_HereDoc_in_atom1623); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    HereDoc214_tree = (CommonTree)adaptor.dupNode(HereDoc214);

                    adaptor.addChild(root_0, HereDoc214_tree);
                    }

                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 4 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:228:59: Integer
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    Integer215=(CommonTree)match(input,Integer,FOLLOW_Integer_in_atom1627); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Integer215_tree = (CommonTree)adaptor.dupNode(Integer215);

                    adaptor.addChild(root_0, Integer215_tree);
                    }

                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 5 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:228:69: Real
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    Real216=(CommonTree)match(input,Real,FOLLOW_Real_in_atom1631); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Real216_tree = (CommonTree)adaptor.dupNode(Real216);

                    adaptor.addChild(root_0, Real216_tree);
                    }

                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 6 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:228:76: Boolean
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    Boolean217=(CommonTree)match(input,Boolean,FOLLOW_Boolean_in_atom1635); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Boolean217_tree = (CommonTree)adaptor.dupNode(Boolean217);

                    adaptor.addChild(root_0, Boolean217_tree);
                    }

                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 7 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:228:86: arrayDeclaration
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_arrayDeclaration_in_atom1639);
                    arrayDeclaration218=arrayDeclaration();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_0, arrayDeclaration218.getTree());

                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;

            }
            if ( state.backtracking==0 ) {

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "atom"

    public static class reference_return extends TreeRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "reference"
    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:232:1: reference : ( ^( Ampersand nameOrFunctionCall ) | nameOrFunctionCall );
    public final PhpRecognizer.reference_return reference() throws RecognitionException {
        PhpRecognizer.reference_return retval = new PhpRecognizer.reference_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree Ampersand219=null;
        PhpRecognizer.nameOrFunctionCall_return nameOrFunctionCall220 = null;

        PhpRecognizer.nameOrFunctionCall_return nameOrFunctionCall221 = null;


        CommonTree Ampersand219_tree=null;

        try {
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:233:5: ( ^( Ampersand nameOrFunctionCall ) | nameOrFunctionCall )
            int alt50=2;
            int LA50_0 = input.LA(1);

            if ( (LA50_0==Ampersand) ) {
                alt50=1;
            }
            else if ( (LA50_0==OpenSquareBrace||(LA50_0>=ClassMember && LA50_0<=InstanceMember)||LA50_0==Dollar||LA50_0==Apply||LA50_0==UnquotedString) ) {
                alt50=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return retval;}
                NoViableAltException nvae =
                    new NoViableAltException("", 50, 0, input);

                throw nvae;
            }
            switch (alt50) {
                case 1 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:233:7: ^( Ampersand nameOrFunctionCall )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Ampersand219=(CommonTree)match(input,Ampersand,FOLLOW_Ampersand_in_reference1658); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Ampersand219_tree = (CommonTree)adaptor.dupNode(Ampersand219);

                    root_1 = (CommonTree)adaptor.becomeRoot(Ampersand219_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_nameOrFunctionCall_in_reference1660);
                    nameOrFunctionCall220=nameOrFunctionCall();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, nameOrFunctionCall220.getTree());

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 2 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:234:7: nameOrFunctionCall
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_nameOrFunctionCall_in_reference1669);
                    nameOrFunctionCall221=nameOrFunctionCall();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_0, nameOrFunctionCall221.getTree());

                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;

            }
            if ( state.backtracking==0 ) {

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "reference"

    public static class nameOrFunctionCall_return extends TreeRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "nameOrFunctionCall"
    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:237:1: nameOrFunctionCall : ( ^( Apply name ( expression )* ) | name );
    public final PhpRecognizer.nameOrFunctionCall_return nameOrFunctionCall() throws RecognitionException {
        PhpRecognizer.nameOrFunctionCall_return retval = new PhpRecognizer.nameOrFunctionCall_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree Apply222=null;
        PhpRecognizer.name_return name223 = null;

        PhpRecognizer.expression_return expression224 = null;

        PhpRecognizer.name_return name225 = null;


        CommonTree Apply222_tree=null;

        try {
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:238:5: ( ^( Apply name ( expression )* ) | name )
            int alt52=2;
            int LA52_0 = input.LA(1);

            if ( (LA52_0==Apply) ) {
                alt52=1;
            }
            else if ( (LA52_0==OpenSquareBrace||(LA52_0>=ClassMember && LA52_0<=InstanceMember)||LA52_0==Dollar||LA52_0==UnquotedString) ) {
                alt52=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return retval;}
                NoViableAltException nvae =
                    new NoViableAltException("", 52, 0, input);

                throw nvae;
            }
            switch (alt52) {
                case 1 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:238:7: ^( Apply name ( expression )* )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Apply222=(CommonTree)match(input,Apply,FOLLOW_Apply_in_nameOrFunctionCall1687); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Apply222_tree = (CommonTree)adaptor.dupNode(Apply222);

                    root_1 = (CommonTree)adaptor.becomeRoot(Apply222_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_name_in_nameOrFunctionCall1689);
                    name223=name();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, name223.getTree());
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:238:20: ( expression )*
                    loop51:
                    do {
                        int alt51=2;
                        int LA51_0 = input.LA(1);

                        if ( (LA51_0==OpenSquareBrace||(LA51_0>=LogicalOr && LA51_0<=SuppressWarnings)||LA51_0==Dollar||(LA51_0>=Dot && LA51_0<=Clone)||(LA51_0>=And && LA51_0<=Instanceof)||LA51_0==Apply||(LA51_0>=Prefix && LA51_0<=IfExpression)||LA51_0==Cast||LA51_0==UnquotedString||LA51_0==Integer||(LA51_0>=AsignmentOperator && LA51_0<=EqualityOperator)||LA51_0==ShiftOperator||(LA51_0>=Array && LA51_0<=Boolean)) ) {
                            alt51=1;
                        }


                        switch (alt51) {
                    	case 1 :
                    	    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:0:0: expression
                    	    {
                    	    _last = (CommonTree)input.LT(1);
                    	    pushFollow(FOLLOW_expression_in_nameOrFunctionCall1691);
                    	    expression224=expression();

                    	    state._fsp--;
                    	    if (state.failed) return retval;
                    	    if ( state.backtracking==0 ) 
                    	    adaptor.addChild(root_1, expression224.getTree());

                    	    if ( state.backtracking==0 ) {
                    	    }
                    	    }
                    	    break;

                    	default :
                    	    break loop51;
                        }
                    } while (true);


                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 2 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:239:7: name
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_name_in_nameOrFunctionCall1701);
                    name225=name();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_0, name225.getTree());

                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;

            }
            if ( state.backtracking==0 ) {

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "nameOrFunctionCall"

    public static class name_return extends TreeRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "name"
    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:242:1: name : ( staticMemberAccess | memberAccess | variable );
    public final PhpRecognizer.name_return name() throws RecognitionException {
        PhpRecognizer.name_return retval = new PhpRecognizer.name_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        PhpRecognizer.staticMemberAccess_return staticMemberAccess226 = null;

        PhpRecognizer.memberAccess_return memberAccess227 = null;

        PhpRecognizer.variable_return variable228 = null;



        try {
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:242:5: ( staticMemberAccess | memberAccess | variable )
            int alt53=3;
            switch ( input.LA(1) ) {
            case ClassMember:
                {
                alt53=1;
                }
                break;
            case OpenSquareBrace:
            case InstanceMember:
                {
                alt53=2;
                }
                break;
            case Dollar:
            case UnquotedString:
                {
                alt53=3;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return retval;}
                NoViableAltException nvae =
                    new NoViableAltException("", 53, 0, input);

                throw nvae;
            }

            switch (alt53) {
                case 1 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:242:7: staticMemberAccess
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_staticMemberAccess_in_name1713);
                    staticMemberAccess226=staticMemberAccess();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_0, staticMemberAccess226.getTree());

                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 2 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:243:7: memberAccess
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_memberAccess_in_name1721);
                    memberAccess227=memberAccess();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_0, memberAccess227.getTree());

                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 3 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:244:7: variable
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_variable_in_name1729);
                    variable228=variable();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_0, variable228.getTree());

                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;

            }
            if ( state.backtracking==0 ) {

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "name"

    public static class staticMemberAccess_return extends TreeRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "staticMemberAccess"
    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:247:1: staticMemberAccess : ^( '::' UnquotedString variable ) ;
    public final PhpRecognizer.staticMemberAccess_return staticMemberAccess() throws RecognitionException {
        PhpRecognizer.staticMemberAccess_return retval = new PhpRecognizer.staticMemberAccess_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree string_literal229=null;
        CommonTree UnquotedString230=null;
        PhpRecognizer.variable_return variable231 = null;


        CommonTree string_literal229_tree=null;
        CommonTree UnquotedString230_tree=null;

        try {
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:248:5: ( ^( '::' UnquotedString variable ) )
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:248:7: ^( '::' UnquotedString variable )
            {
            root_0 = (CommonTree)adaptor.nil();

            _last = (CommonTree)input.LT(1);
            {
            CommonTree _save_last_1 = _last;
            CommonTree _first_1 = null;
            CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
            string_literal229=(CommonTree)match(input,ClassMember,FOLLOW_ClassMember_in_staticMemberAccess1751); if (state.failed) return retval;
            if ( state.backtracking==0 ) {
            string_literal229_tree = (CommonTree)adaptor.dupNode(string_literal229);

            root_1 = (CommonTree)adaptor.becomeRoot(string_literal229_tree, root_1);
            }


            match(input, Token.DOWN, null); if (state.failed) return retval;
            _last = (CommonTree)input.LT(1);
            UnquotedString230=(CommonTree)match(input,UnquotedString,FOLLOW_UnquotedString_in_staticMemberAccess1753); if (state.failed) return retval;
            if ( state.backtracking==0 ) {
            UnquotedString230_tree = (CommonTree)adaptor.dupNode(UnquotedString230);

            adaptor.addChild(root_1, UnquotedString230_tree);
            }
            _last = (CommonTree)input.LT(1);
            pushFollow(FOLLOW_variable_in_staticMemberAccess1756);
            variable231=variable();

            state._fsp--;
            if (state.failed) return retval;
            if ( state.backtracking==0 ) 
            adaptor.addChild(root_1, variable231.getTree());

            match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
            }


            if ( state.backtracking==0 ) {
            }
            }

            if ( state.backtracking==0 ) {

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "staticMemberAccess"

    public static class memberAccess_return extends TreeRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "memberAccess"
    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:251:1: memberAccess : ( ^( OpenSquareBrace variable expression ) | ^( '->' variable UnquotedString ) );
    public final PhpRecognizer.memberAccess_return memberAccess() throws RecognitionException {
        PhpRecognizer.memberAccess_return retval = new PhpRecognizer.memberAccess_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree OpenSquareBrace232=null;
        CommonTree string_literal235=null;
        CommonTree UnquotedString237=null;
        PhpRecognizer.variable_return variable233 = null;

        PhpRecognizer.expression_return expression234 = null;

        PhpRecognizer.variable_return variable236 = null;


        CommonTree OpenSquareBrace232_tree=null;
        CommonTree string_literal235_tree=null;
        CommonTree UnquotedString237_tree=null;

        try {
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:252:5: ( ^( OpenSquareBrace variable expression ) | ^( '->' variable UnquotedString ) )
            int alt54=2;
            int LA54_0 = input.LA(1);

            if ( (LA54_0==OpenSquareBrace) ) {
                alt54=1;
            }
            else if ( (LA54_0==InstanceMember) ) {
                alt54=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return retval;}
                NoViableAltException nvae =
                    new NoViableAltException("", 54, 0, input);

                throw nvae;
            }
            switch (alt54) {
                case 1 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:252:7: ^( OpenSquareBrace variable expression )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    OpenSquareBrace232=(CommonTree)match(input,OpenSquareBrace,FOLLOW_OpenSquareBrace_in_memberAccess1775); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    OpenSquareBrace232_tree = (CommonTree)adaptor.dupNode(OpenSquareBrace232);

                    root_1 = (CommonTree)adaptor.becomeRoot(OpenSquareBrace232_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_variable_in_memberAccess1777);
                    variable233=variable();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, variable233.getTree());
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_expression_in_memberAccess1779);
                    expression234=expression();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, expression234.getTree());

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 2 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:253:7: ^( '->' variable UnquotedString )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    string_literal235=(CommonTree)match(input,InstanceMember,FOLLOW_InstanceMember_in_memberAccess1789); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    string_literal235_tree = (CommonTree)adaptor.dupNode(string_literal235);

                    root_1 = (CommonTree)adaptor.becomeRoot(string_literal235_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_variable_in_memberAccess1791);
                    variable236=variable();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, variable236.getTree());
                    _last = (CommonTree)input.LT(1);
                    UnquotedString237=(CommonTree)match(input,UnquotedString,FOLLOW_UnquotedString_in_memberAccess1793); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    UnquotedString237_tree = (CommonTree)adaptor.dupNode(UnquotedString237);

                    adaptor.addChild(root_1, UnquotedString237_tree);
                    }

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;

            }
            if ( state.backtracking==0 ) {

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "memberAccess"

    public static class variable_return extends TreeRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "variable"
    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:256:1: variable : ( ^( Dollar variable ) | UnquotedString );
    public final PhpRecognizer.variable_return variable() throws RecognitionException {
        PhpRecognizer.variable_return retval = new PhpRecognizer.variable_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree Dollar238=null;
        CommonTree UnquotedString240=null;
        PhpRecognizer.variable_return variable239 = null;


        CommonTree Dollar238_tree=null;
        CommonTree UnquotedString240_tree=null;

        try {
            // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:257:5: ( ^( Dollar variable ) | UnquotedString )
            int alt55=2;
            int LA55_0 = input.LA(1);

            if ( (LA55_0==Dollar) ) {
                alt55=1;
            }
            else if ( (LA55_0==UnquotedString) ) {
                alt55=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return retval;}
                NoViableAltException nvae =
                    new NoViableAltException("", 55, 0, input);

                throw nvae;
            }
            switch (alt55) {
                case 1 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:257:7: ^( Dollar variable )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    Dollar238=(CommonTree)match(input,Dollar,FOLLOW_Dollar_in_variable1816); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    Dollar238_tree = (CommonTree)adaptor.dupNode(Dollar238);

                    root_1 = (CommonTree)adaptor.becomeRoot(Dollar238_tree, root_1);
                    }


                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_variable_in_variable1818);
                    variable239=variable();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) 
                    adaptor.addChild(root_1, variable239.getTree());

                    match(input, Token.UP, null); if (state.failed) return retval;adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;
                case 2 :
                    // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:258:7: UnquotedString
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    UnquotedString240=(CommonTree)match(input,UnquotedString,FOLLOW_UnquotedString_in_variable1827); if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                    UnquotedString240_tree = (CommonTree)adaptor.dupNode(UnquotedString240);

                    adaptor.addChild(root_0, UnquotedString240_tree);
                    }

                    if ( state.backtracking==0 ) {
                    }
                    }
                    break;

            }
            if ( state.backtracking==0 ) {

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "variable"

    // $ANTLR start synpred72_PhpRecognizer
    public final void synpred72_PhpRecognizer_fragment() throws RecognitionException {   
        // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:188:7: ( ^( Ampersand expression expression ) )
        // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:188:7: ^( Ampersand expression expression )
        {
        match(input,Ampersand,FOLLOW_Ampersand_in_synpred72_PhpRecognizer1256); if (state.failed) return ;

        match(input, Token.DOWN, null); if (state.failed) return ;
        pushFollow(FOLLOW_expression_in_synpred72_PhpRecognizer1258);
        expression();

        state._fsp--;
        if (state.failed) return ;
        pushFollow(FOLLOW_expression_in_synpred72_PhpRecognizer1260);
        expression();

        state._fsp--;
        if (state.failed) return ;

        match(input, Token.UP, null); if (state.failed) return ;

        }
    }
    // $ANTLR end synpred72_PhpRecognizer

    // $ANTLR start synpred76_PhpRecognizer
    public final void synpred76_PhpRecognizer_fragment() throws RecognitionException {   
        // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:192:7: ( ^( Minus expression expression ) )
        // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:192:7: ^( Minus expression expression )
        {
        match(input,Minus,FOLLOW_Minus_in_synpred76_PhpRecognizer1312); if (state.failed) return ;

        match(input, Token.DOWN, null); if (state.failed) return ;
        pushFollow(FOLLOW_expression_in_synpred76_PhpRecognizer1314);
        expression();

        state._fsp--;
        if (state.failed) return ;
        pushFollow(FOLLOW_expression_in_synpred76_PhpRecognizer1316);
        expression();

        state._fsp--;
        if (state.failed) return ;

        match(input, Token.UP, null); if (state.failed) return ;

        }
    }
    // $ANTLR end synpred76_PhpRecognizer

    // $ANTLR start synpred84_PhpRecognizer
    public final void synpred84_PhpRecognizer_fragment() throws RecognitionException {   
        // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:200:7: ( ^( Minus expression ) )
        // C:\\data\\home\\ewger\\development\\java\\Faun\\src\\org\\faun\\recognizer\\PhpRecognizer.g:200:7: ^( Minus expression )
        {
        match(input,Minus,FOLLOW_Minus_in_synpred84_PhpRecognizer1420); if (state.failed) return ;

        match(input, Token.DOWN, null); if (state.failed) return ;
        pushFollow(FOLLOW_expression_in_synpred84_PhpRecognizer1422);
        expression();

        state._fsp--;
        if (state.failed) return ;

        match(input, Token.UP, null); if (state.failed) return ;

        }
    }
    // $ANTLR end synpred84_PhpRecognizer

    // Delegated rules

    public final boolean synpred76_PhpRecognizer() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred76_PhpRecognizer_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred72_PhpRecognizer() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred72_PhpRecognizer_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred84_PhpRecognizer() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred84_PhpRecognizer_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }


    protected DFA44 dfa44 = new DFA44(this);
    static final String DFA44_eotS =
        "\54\uffff";
    static final String DFA44_eofS =
        "\54\uffff";
    static final String DFA44_minS =
        "\1\10\11\uffff\1\0\3\uffff\1\0\35\uffff";
    static final String DFA44_maxS =
        "\1\140\11\uffff\1\0\3\uffff\1\0\35\uffff";
    static final String DFA44_acceptS =
        "\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\uffff\1\13\1\14"+
        "\1\15\1\uffff\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\27\1\30\1\31"+
        "\1\32\1\33\1\34\1\35\14\uffff\1\12\1\16\1\26";
    static final String DFA44_specialS =
        "\12\uffff\1\0\3\uffff\1\1\35\uffff}>";
    static final String[] DFA44_transitionS = {
            "\1\34\4\uffff\1\7\1\10\2\34\1\26\1\uffff\1\34\1\uffff\1\17"+
            "\1\12\1\11\1\23\1\15\1\16\1\20\1\22\1\21\1\25\1\4\1\32\1\33"+
            "\21\uffff\1\3\1\1\1\2\1\24\13\uffff\1\34\3\uffff\1\30\1\31\1"+
            "\6\1\uffff\1\27\6\uffff\1\34\1\uffff\1\34\1\uffff\1\5\1\13\1"+
            "\uffff\1\14\2\uffff\6\34",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "\1\uffff",
            "",
            "",
            "",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA44_eot = DFA.unpackEncodedString(DFA44_eotS);
    static final short[] DFA44_eof = DFA.unpackEncodedString(DFA44_eofS);
    static final char[] DFA44_min = DFA.unpackEncodedStringToUnsignedChars(DFA44_minS);
    static final char[] DFA44_max = DFA.unpackEncodedStringToUnsignedChars(DFA44_maxS);
    static final short[] DFA44_accept = DFA.unpackEncodedString(DFA44_acceptS);
    static final short[] DFA44_special = DFA.unpackEncodedString(DFA44_specialS);
    static final short[][] DFA44_transition;

    static {
        int numStates = DFA44_transitionS.length;
        DFA44_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA44_transition[i] = DFA.unpackEncodedString(DFA44_transitionS[i]);
        }
    }

    class DFA44 extends DFA {

        public DFA44(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 44;
            this.eot = DFA44_eot;
            this.eof = DFA44_eof;
            this.min = DFA44_min;
            this.max = DFA44_max;
            this.accept = DFA44_accept;
            this.special = DFA44_special;
            this.transition = DFA44_transition;
        }
        public String getDescription() {
            return "178:1: expression returns [PhpExpression value] : ( ^( Or expression expression ) | ^( Xor expression expression ) | ^( And expression expression ) | ^( Equals expression expression ) | ^( AsignmentOperator expression expression ) | ^( IfExpression expression expression expression ) | ^( LogicalOr expression expression ) | ^( LogicalAnd expression expression ) | ^( Pipe expression expression ) | ^( Ampersand expression expression ) | ^( EqualityOperator expression expression ) | ^( ShiftOperator expression expression ) | ^( Plus expression expression ) | ^( Minus expression expression ) | ^( Dot expression expression ) | ^( Asterisk expression expression ) | ^( Forwardslash expression expression ) | ^( Percent expression expression ) | ^( Bang expression ) | ^( Instanceof expression expression ) | ^( Tilde expression ) | ^( Minus expression ) | ^( SuppressWarnings expression ) | ^( Cast PrimitiveType expression ) | ^( Prefix IncrementOperator name ) | ^( Postfix IncrementOperator name ) | ^( New nameOrFunctionCall ) | ^( Clone name ) | atomOrReference );";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TreeNodeStream input = (TreeNodeStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA44_10 = input.LA(1);

                         
                        int index44_10 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred72_PhpRecognizer()) ) {s = 41;}

                        else if ( (true) ) {s = 28;}

                         
                        input.seek(index44_10);
                        if ( s>=0 ) return s;
                        break;
                    case 1 : 
                        int LA44_14 = input.LA(1);

                         
                        int index44_14 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred76_PhpRecognizer()) ) {s = 42;}

                        else if ( (synpred84_PhpRecognizer()) ) {s = 43;}

                         
                        input.seek(index44_14);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 44, _s, input);
            error(nvae);
            throw nvae;
        }
    }
 

    public static final BitSet FOLLOW_statement_in_source52 = new BitSet(new long[]{0x01FFE7CFFFEBE102L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_BodyString_in_statement68 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_Block_in_statement77 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_statement_in_statement82 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_classDefinition_in_statement100 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_interfaceDefinition_in_statement114 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_complexStatement_in_statement124 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_simpleStatement_in_statement137 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_Interface_in_interfaceDefinition164 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_UnquotedString_in_interfaceDefinition166 = new BitSet(new long[]{0x2200000000000008L,0x0000000000008000L});
    public static final BitSet FOLLOW_interfaceExtends_in_interfaceDefinition168 = new BitSet(new long[]{0x2000000000000008L,0x0000000000008000L});
    public static final BitSet FOLLOW_interfaceMember_in_interfaceDefinition171 = new BitSet(new long[]{0x2000000000000008L,0x0000000000008000L});
    public static final BitSet FOLLOW_Extends_in_interfaceExtends190 = new BitSet(new long[]{0x0000000000000000L,0x0000000000020000L});
    public static final BitSet FOLLOW_UnquotedString_in_interfaceExtends193 = new BitSet(new long[]{0x0000000000000002L,0x0000000000020000L});
    public static final BitSet FOLLOW_Const_in_interfaceMember211 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_UnquotedString_in_interfaceMember213 = new BitSet(new long[]{0x0000000000000008L,0x00000001F8080000L});
    public static final BitSet FOLLOW_atom_in_interfaceMember215 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_Method_in_interfaceMember226 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_Modifiers_in_interfaceMember229 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_fieldModifier_in_interfaceMember231 = new BitSet(new long[]{0x0804000000000008L,0x0000000000040000L});
    public static final BitSet FOLLOW_UnquotedString_in_interfaceMember235 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
    public static final BitSet FOLLOW_Params_in_interfaceMember238 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_paramDef_in_interfaceMember240 = new BitSet(new long[]{0x0000000080480008L});
    public static final BitSet FOLLOW_Class_in_classDefinition266 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_Modifiers_in_classDefinition269 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_classModifier_in_classDefinition271 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_UnquotedString_in_classDefinition275 = new BitSet(new long[]{0x3600000000000008L,0x000000000000C000L});
    public static final BitSet FOLLOW_Extends_in_classDefinition279 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_UnquotedString_in_classDefinition281 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_classImplements_in_classDefinition286 = new BitSet(new long[]{0x3000000000000008L,0x000000000000C000L});
    public static final BitSet FOLLOW_classMember_in_classDefinition289 = new BitSet(new long[]{0x3000000000000008L,0x000000000000C000L});
    public static final BitSet FOLLOW_Implements_in_classImplements314 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_UnquotedString_in_classImplements316 = new BitSet(new long[]{0x0000000000000008L,0x0000000000020000L});
    public static final BitSet FOLLOW_Method_in_classMember336 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_Modifiers_in_classMember339 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_fieldModifier_in_classMember341 = new BitSet(new long[]{0x0804000000000008L,0x0000000000040000L});
    public static final BitSet FOLLOW_UnquotedString_in_classMember345 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
    public static final BitSet FOLLOW_Params_in_classMember348 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_paramDef_in_classMember350 = new BitSet(new long[]{0x0000000080480008L});
    public static final BitSet FOLLOW_statementBlock_in_classMember354 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_Var_in_classMember365 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_Dollar_in_classMember368 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_UnquotedString_in_classMember370 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_atom_in_classMember373 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_Const_in_classMember385 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_UnquotedString_in_classMember387 = new BitSet(new long[]{0x0000000000000008L,0x00000001F8080000L});
    public static final BitSet FOLLOW_atom_in_classMember389 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_Field_in_classMember400 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_Modifiers_in_classMember403 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_fieldModifier_in_classMember405 = new BitSet(new long[]{0x0804000000000008L,0x0000000000040000L});
    public static final BitSet FOLLOW_Dollar_in_classMember410 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_UnquotedString_in_classMember412 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_atom_in_classMember415 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_Block_in_statementBlock439 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_statement_in_statementBlock441 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_Field_in_fieldDefinition461 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_Dollar_in_fieldDefinition464 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_UnquotedString_in_fieldDefinition466 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_atom_in_fieldDefinition469 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_Abstract_in_classModifier492 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_set_in_fieldModifier0 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_If_in_complexStatement539 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_complexStatement541 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_statement_in_complexStatement545 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_statement_in_complexStatement549 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_For_in_complexStatement569 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_forInit_in_complexStatement571 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L});
    public static final BitSet FOLLOW_forCondition_in_complexStatement573 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
    public static final BitSet FOLLOW_forUpdate_in_complexStatement575 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_statement_in_complexStatement577 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_Foreach_in_complexStatement595 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_variable_in_complexStatement597 = new BitSet(new long[]{0x01FFE7CFFFEBF100L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_arrayEntry_in_complexStatement599 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_statement_in_complexStatement601 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_While_in_complexStatement618 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_complexStatement620 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_statement_in_complexStatement622 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_Do_in_complexStatement636 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_statement_in_complexStatement638 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_expression_in_complexStatement640 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_Switch_in_complexStatement650 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_complexStatement652 = new BitSet(new long[]{0x0000180000000000L});
    public static final BitSet FOLLOW_cases_in_complexStatement654 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_functionDefinition_in_complexStatement663 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_Echo_in_simpleStatement684 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_simpleStatement689 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_Global_in_simpleStatement709 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_name_in_simpleStatement714 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_Static_in_simpleStatement734 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_variable_in_simpleStatement736 = new BitSet(new long[]{0x0000000000000000L,0x00000001F8080000L});
    public static final BitSet FOLLOW_atom_in_simpleStatement738 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_Break_in_simpleStatement748 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_Integer_in_simpleStatement750 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_Continue_in_simpleStatement769 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_Integer_in_simpleStatement771 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_Return_in_simpleStatement795 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_simpleStatement797 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_RequireOperator_in_simpleStatement816 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_simpleStatement818 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_expression_in_simpleStatement835 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ForInit_in_forInit865 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_forInit867 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_ForCondition_in_forCondition890 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_forCondition892 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_ForUpdate_in_forUpdate919 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_forUpdate921 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_casestatement_in_cases941 = new BitSet(new long[]{0x0000180000000000L});
    public static final BitSet FOLLOW_defaultcase_in_cases945 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_Case_in_casestatement963 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_casestatement965 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_statement_in_casestatement967 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_Default_in_defaultcase988 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_statement_in_defaultcase990 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_Function_in_functionDefinition1013 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_UnquotedString_in_functionDefinition1015 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
    public static final BitSet FOLLOW_Params_in_functionDefinition1018 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_paramDef_in_functionDefinition1020 = new BitSet(new long[]{0x0000000080480008L});
    public static final BitSet FOLLOW_Block_in_functionDefinition1025 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_statement_in_functionDefinition1027 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_Equals_in_paramDef1052 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_paramName_in_paramDef1054 = new BitSet(new long[]{0x0000000000000000L,0x00000001F8080000L});
    public static final BitSet FOLLOW_atom_in_paramDef1056 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_paramName_in_paramDef1066 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_Dollar_in_paramName1084 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_UnquotedString_in_paramName1086 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_Ampersand_in_paramName1096 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_Dollar_in_paramName1099 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_UnquotedString_in_paramName1101 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_Or_in_expression1128 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_expression1130 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_expression_in_expression1132 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_Xor_in_expression1142 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_expression1144 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_expression_in_expression1146 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_And_in_expression1156 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_expression1158 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_expression_in_expression1160 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_Equals_in_expression1170 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_expression1172 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_expression_in_expression1174 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_AsignmentOperator_in_expression1184 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_expression1186 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_expression_in_expression1188 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_IfExpression_in_expression1198 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_expression1200 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_expression_in_expression1202 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_expression_in_expression1204 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_LogicalOr_in_expression1214 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_expression1216 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_expression_in_expression1218 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_LogicalAnd_in_expression1228 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_expression1230 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_expression_in_expression1232 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_Pipe_in_expression1242 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_expression1244 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_expression_in_expression1246 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_Ampersand_in_expression1256 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_expression1258 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_expression_in_expression1260 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_EqualityOperator_in_expression1270 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_expression1272 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_expression_in_expression1274 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_ShiftOperator_in_expression1284 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_expression1286 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_expression_in_expression1288 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_Plus_in_expression1298 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_expression1300 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_expression_in_expression1302 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_Minus_in_expression1312 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_expression1314 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_expression_in_expression1316 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_Dot_in_expression1326 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_expression1328 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_expression_in_expression1330 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_Asterisk_in_expression1340 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_expression1342 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_expression_in_expression1344 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_Forwardslash_in_expression1354 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_expression1356 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_expression_in_expression1358 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_Percent_in_expression1368 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_expression1370 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_expression_in_expression1372 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_Bang_in_expression1382 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_expression1384 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_Instanceof_in_expression1394 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_expression1396 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_expression_in_expression1398 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_Tilde_in_expression1408 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_expression1410 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_Minus_in_expression1420 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_expression1422 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SuppressWarnings_in_expression1433 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_expression1435 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_Cast_in_expression1445 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_PrimitiveType_in_expression1447 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_expression_in_expression1449 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_Prefix_in_expression1459 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_IncrementOperator_in_expression1461 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_name_in_expression1463 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_Postfix_in_expression1473 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_IncrementOperator_in_expression1475 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_name_in_expression1477 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_New_in_expression1487 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_nameOrFunctionCall_in_expression1489 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_Clone_in_expression1499 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_name_in_expression1501 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_atomOrReference_in_expression1510 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_atom_in_atomOrReference1528 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_reference_in_atomOrReference1536 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_Array_in_arrayDeclaration1554 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_arrayEntry_in_arrayDeclaration1556 = new BitSet(new long[]{0x01FFE7CFFFEBF108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_keyValuePair_in_arrayEntry1576 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_expression_in_arrayEntry1580 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ArrayAssign_in_keyValuePair1599 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_keyValuePair1601 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_SingleQuotedString_in_atom1615 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_DoubleQuotedString_in_atom1619 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_HereDoc_in_atom1623 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_Integer_in_atom1627 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_Real_in_atom1631 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_Boolean_in_atom1635 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_arrayDeclaration_in_atom1639 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_Ampersand_in_reference1658 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_nameOrFunctionCall_in_reference1660 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_nameOrFunctionCall_in_reference1669 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_Apply_in_nameOrFunctionCall1687 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_name_in_nameOrFunctionCall1689 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_expression_in_nameOrFunctionCall1691 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_name_in_nameOrFunctionCall1701 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_staticMemberAccess_in_name1713 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_memberAccess_in_name1721 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_variable_in_name1729 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ClassMember_in_staticMemberAccess1751 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_UnquotedString_in_staticMemberAccess1753 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_variable_in_staticMemberAccess1756 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_OpenSquareBrace_in_memberAccess1775 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_variable_in_memberAccess1777 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_expression_in_memberAccess1779 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_InstanceMember_in_memberAccess1789 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_variable_in_memberAccess1791 = new BitSet(new long[]{0x0000000000000000L,0x0000000000020000L});
    public static final BitSet FOLLOW_UnquotedString_in_memberAccess1793 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_Dollar_in_variable1816 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_variable_in_variable1818 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_UnquotedString_in_variable1827 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_Ampersand_in_synpred72_PhpRecognizer1256 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_synpred72_PhpRecognizer1258 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_expression_in_synpred72_PhpRecognizer1260 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_Minus_in_synpred76_PhpRecognizer1312 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_synpred76_PhpRecognizer1314 = new BitSet(new long[]{0x01FFE7CFFFEBE108L,0x00000001F97B05C5L});
    public static final BitSet FOLLOW_expression_in_synpred76_PhpRecognizer1316 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_Minus_in_synpred84_PhpRecognizer1420 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_synpred84_PhpRecognizer1422 = new BitSet(new long[]{0x0000000000000008L});

}